--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / public / assets / js / codec2-emscripten / c2enc.js
Displaying Raw • Download
meshchatx/src/frontend/public/assets/js/codec2-emscripten/c2enc.js b05bf1bb17d25237fd1ce1d54e2aaf9536d0c506 (b05bf1bb) Text, 180.16 KB
Tff7b72var Te6edf3createC2Enc Tff7b72= Tb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3_scriptDir Tff7b72= Tff7b72typeof Tffa657document Tff7b72!== Ta5d6ff"undefined" Tff7b72&& Tffa657documentTb4b4b4.Te6edf3currentScript Tff7b72? Tffa657documentTb4b4b4.Te6edf3currentScriptTb4b4b4.Te6edf3src Tff7b72: Tff7b72undefinedTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3__filename Tff7b72!== Ta5d6ff"undefined"Tb4b4b4) Te6edf3_scriptDir Tff7b72= Te6edf3_scriptDir Tff7b72|| Te6edf3__filenameTb4b4b4;
Tff7b72return Tff7b72function Tb4b4b4(Te6edf3createC2EncTb4b4b4) Tb4b4b4{
Te6edf3createC2Enc Tff7b72= Te6edf3createC2Enc Tff7b72|| Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tb4b4b4(Ta5d6ff"use strict"Tb4b4b4)Tb4b4b4;
T8b949e// The Module object: Our interface to the outside world. We import
T8b949e// and export values on it. There are various ways Module can be used:
T8b949e// 1. Not defined. We create it here
T8b949e// 2. A function parameter, function(Module) { ..generated code.. }
T8b949e// 3. pre-run appended it, var Module = {}; ..generated code..
T8b949e// 4. External script tag defines var Module.
T8b949e// We need to check if Module already exists (e.g. case 3 above).
T8b949e// Substitution will be replaced with actual code on later stage of the build,
T8b949e// this way Closure Compiler will not mangle it (e.g. case 4. above).
T8b949e// Note that if you want to run closure, and also to use Module
T8b949e// after the generated code, you will need to define var Module = {};
T8b949e// before the code. Then that object will be used in the code, and you
T8b949e// can continue to use Module afterwards as well.
Tff7b72var Te6edf3Module Tff7b72= Tff7b72typeof Te6edf3createC2Enc Tff7b72!= Ta5d6ff"undefined" Tff7b72? Te6edf3createC2Enc Tff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4;
T8b949e// See https://caniuse.com/mdn-javascript_builtins_object_assign
T8b949e// See https://caniuse.com/mdn-javascript_builtins_bigint64array
T8b949e// Set up the promise that indicates the Module is initialized
Tff7b72var Te6edf3readyPromiseResolveTb4b4b4, Te6edf3readyPromiseRejectTb4b4b4;
Te6edf3ModuleTb4b4b4[Ta5d6ff"ready"Tb4b4b4] Tff7b72= Tff7b72new Tffa657PromiseTb4b4b4(Tff7b72function Tb4b4b4(Te6edf3resolveTb4b4b4, Te6edf3rejectTb4b4b4) Tb4b4b4{
Te6edf3readyPromiseResolve Tff7b72= Te6edf3resolveTb4b4b4;
Te6edf3readyPromiseReject Tff7b72= Te6edf3rejectTb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
T8b949e// --pre-jses are emitted after the Module integration code, so that they can
T8b949e// refer to Module (if they choose; they can also define Module)
T8b949e// {{PRE_JSES}}
T8b949e// Sometimes an existing Module object exists with properties
T8b949e// meant to overwrite the default module functionality. Here
T8b949e// we collect those properties and reapply _after_ we configure
T8b949e// the current environment's defaults to avoid having to be so
T8b949e// defensive during initialization.
Tff7b72var Te6edf3moduleOverrides Tff7b72= Tffa657ObjectTb4b4b4.Te6edf3assignTb4b4b4(Tb4b4b4{Tb4b4b4}Tb4b4b4, Te6edf3ModuleTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3arguments_ Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72var Te6edf3thisProgram Tff7b72= Ta5d6ff"./this.program"Tb4b4b4;
Tff7b72var Te6edf3quit_ Tff7b72= Tb4b4b4(Te6edf3statusTb4b4b4, Te6edf3toThrowTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72throw Te6edf3toThrowTb4b4b4;
Tb4b4b4}Tb4b4b4;
T8b949e// Determine the runtime environment we are in. You can customize this by
T8b949e// setting the ENVIRONMENT setting at compile time (see settings.js).
T8b949e// Attempt to auto-detect the environment
Tff7b72var Te6edf3ENVIRONMENT_IS_WEB Tff7b72= Tff7b72typeof Tffa657window Tff7b72== Ta5d6ff"object"Tb4b4b4;
Tff7b72var Te6edf3ENVIRONMENT_IS_WORKER Tff7b72= Tff7b72typeof Te6edf3importScripts Tff7b72== Ta5d6ff"function"Tb4b4b4;
T8b949e// N.b. Electron.js environment is simultaneously a NODE-environment, but
T8b949e// also a web environment.
Tff7b72var Te6edf3ENVIRONMENT_IS_NODE Tff7b72=
Tff7b72typeof Te6edf3process Tff7b72== Ta5d6ff"object" Tff7b72&&
Tff7b72typeof Te6edf3processTb4b4b4.Te6edf3versions Tff7b72== Ta5d6ff"object" Tff7b72&&
Tff7b72typeof Te6edf3processTb4b4b4.Te6edf3versionsTb4b4b4.Te6edf3node Tff7b72== Ta5d6ff"string"Tb4b4b4;
Tff7b72var Te6edf3ENVIRONMENT_IS_SHELL Tff7b72= Tff7b72!Te6edf3ENVIRONMENT_IS_WEB Tff7b72&& Tff7b72!Te6edf3ENVIRONMENT_IS_NODE Tff7b72&& Tff7b72!Te6edf3ENVIRONMENT_IS_WORKERTb4b4b4;
T8b949e// `/` should be present at the end if `scriptDirectory` is not empty
Tff7b72var Te6edf3scriptDirectory Tff7b72= Ta5d6ff""Tb4b4b4;
Tff7b72function Te6edf3locateFileTb4b4b4(Te6edf3pathTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"locateFile"Tb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3ModuleTb4b4b4[Ta5d6ff"locateFile"Tb4b4b4]Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3scriptDirectoryTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3scriptDirectory Tff7b72+ Te6edf3pathTb4b4b4;
Tb4b4b4}
T8b949e// Hooks that are implemented differently in different runtime environments.
Tff7b72var Te6edf3read_Tb4b4b4, Te6edf3readAsyncTb4b4b4, Te6edf3readBinaryTb4b4b4, Te6edf3setWindowTitleTb4b4b4;
T8b949e// Normally we don't log exceptions but instead let them bubble out the top
T8b949e// level where the embedding environment (e.g. the browser) can handle
T8b949e// them.
T8b949e// However under v8 and node we sometimes exit the process direcly in which case
T8b949e// its up to use us to log the exception before exiting.
T8b949e// If we fix https://github.com/emscripten-core/emscripten/issues/15080
T8b949e// this may no longer be needed under node.
Tff7b72function Te6edf3logExceptionOnExitTb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3e Tff7b72instanceof Te6edf3ExitStatusTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72let Te6edf3toLog Tff7b72= Te6edf3eTb4b4b4;
Te6edf3errTb4b4b4(Ta5d6ff"exiting due to exception: " Tff7b72+ Te6edf3toLogTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3ENVIRONMENT_IS_NODETb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3ENVIRONMENT_IS_WORKERTb4b4b4) Tb4b4b4{
Te6edf3scriptDirectory Tff7b72= Te6edf3requireTb4b4b4(Ta5d6ff"path"Tb4b4b4)Tb4b4b4.Te6edf3dirnameTb4b4b4(Te6edf3scriptDirectoryTb4b4b4) Tff7b72+ Ta5d6ff"/"Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3scriptDirectory Tff7b72= Te6edf3__dirname Tff7b72+ Ta5d6ff"/"Tb4b4b4;
Tb4b4b4}
T8b949e// include: node_shell_read.js
T8b949e// These modules will usually be used on Node.js. Load them eagerly to avoid
T8b949e// the complexity of lazy-loading. However, for now we must guard on require()
T8b949e// actually existing: if the JS is put in a .mjs file (ES6 module) and run on
T8b949e// node, then we'll detect node as the environment and get here, but require()
T8b949e// does not exist (since ES6 modules should use |import|). If the code actually
T8b949e// uses the node filesystem then it will crash, of course, but in the case of
T8b949e// code that never uses it we don't want to crash here, so the guarding if lets
T8b949e// such code work properly. See discussion in
T8b949e// https://github.com/emscripten-core/emscripten/pull/17851
Tff7b72var Te6edf3fsTb4b4b4, Te6edf3nodePathTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3require Tff7b72=== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Te6edf3fs Tff7b72= Te6edf3requireTb4b4b4(Ta5d6ff"fs"Tb4b4b4)Tb4b4b4;
Te6edf3nodePath Tff7b72= Te6edf3requireTb4b4b4(Ta5d6ff"path"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3read_ Tff7b72= Tb4b4b4(Te6edf3filenameTb4b4b4, Te6edf3binaryTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3filename Tff7b72= Te6edf3nodePathTb4b4b4[Ta5d6ff"normalize"Tb4b4b4]Tb4b4b4(Te6edf3filenameTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3fsTb4b4b4.Te6edf3readFileSyncTb4b4b4(Te6edf3filenameTb4b4b4, Te6edf3binary Tff7b72? Tff7b72undefined Tff7b72: Ta5d6ff"utf8"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3readBinary Tff7b72= Tb4b4b4(Te6edf3filenameTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3ret Tff7b72= Te6edf3read_Tb4b4b4(Te6edf3filenameTb4b4b4, Tff7b72trueTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3retTb4b4b4.Te6edf3bufferTb4b4b4) Tb4b4b4{
Te6edf3ret Tff7b72= Tff7b72new Tffa657Uint8ArrayTb4b4b4(Te6edf3retTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3retTb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3readAsync Tff7b72= Tb4b4b4(Te6edf3filenameTb4b4b4, Te6edf3onloadTb4b4b4, Te6edf3onerrorTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3filename Tff7b72= Te6edf3nodePathTb4b4b4[Ta5d6ff"normalize"Tb4b4b4]Tb4b4b4(Te6edf3filenameTb4b4b4)Tb4b4b4;
Te6edf3fsTb4b4b4.Te6edf3readFileTb4b4b4(Te6edf3filenameTb4b4b4, Tff7b72function Tb4b4b4(Te6edf3errTb4b4b4, Te6edf3dataTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3errTb4b4b4) Te6edf3onerrorTb4b4b4(Te6edf3errTb4b4b4)Tb4b4b4;
Tff7b72else Te6edf3onloadTb4b4b4(Te6edf3dataTb4b4b4.Te6edf3bufferTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
T8b949e// end include: node_shell_read.js
Tff7b72if Tb4b4b4(Te6edf3processTb4b4b4[Ta5d6ff"argv"Tb4b4b4]Tb4b4b4.Te6edf3length Tff7b72> T79c0ff1Tb4b4b4) Tb4b4b4{
Te6edf3thisProgram Tff7b72= Te6edf3processTb4b4b4[Ta5d6ff"argv"Tb4b4b4]Tb4b4b4[T79c0ff1Tb4b4b4]Tb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/\\/gTb4b4b4, Ta5d6ff"/"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3arguments_ Tff7b72= Te6edf3processTb4b4b4[Ta5d6ff"argv"Tb4b4b4]Tb4b4b4.Te6edf3sliceTb4b4b4(T79c0ff2Tb4b4b4)Tb4b4b4;
T8b949e// MODULARIZE will export the module in the proper place outside, we don't need to export here
Te6edf3processTb4b4b4[Ta5d6ff"on"Tb4b4b4]Tb4b4b4(Ta5d6ff"uncaughtException"Tb4b4b4, Tff7b72function Tb4b4b4(Te6edf3exTb4b4b4) Tb4b4b4{
T8b949e// suppress ExitStatus exceptions from showing an error
Tff7b72if Tb4b4b4(Tff7b72!Tb4b4b4(Te6edf3ex Tff7b72instanceof Te6edf3ExitStatusTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Te6edf3exTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
T8b949e// Without this older versions of node (< v15) will log unhandled rejections
T8b949e// but return 0, which is not normally the desired behaviour. This is
T8b949e// not be needed with node v15 and about because it is now the default
T8b949e// behaviour:
T8b949e// See https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode
Te6edf3processTb4b4b4[Ta5d6ff"on"Tb4b4b4]Tb4b4b4(Ta5d6ff"unhandledRejection"Tb4b4b4, Tff7b72function Tb4b4b4(Te6edf3reasonTb4b4b4) Tb4b4b4{
Tff7b72throw Te6edf3reasonTb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3quit_ Tff7b72= Tb4b4b4(Te6edf3statusTb4b4b4, Te6edf3toThrowTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3keepRuntimeAliveTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3processTb4b4b4[Ta5d6ff"exitCode"Tb4b4b4] Tff7b72= Te6edf3statusTb4b4b4;
Tff7b72throw Te6edf3toThrowTb4b4b4;
Tb4b4b4}
Te6edf3logExceptionOnExitTb4b4b4(Te6edf3toThrowTb4b4b4)Tb4b4b4;
Te6edf3processTb4b4b4[Ta5d6ff"exit"Tb4b4b4]Tb4b4b4(Te6edf3statusTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3ModuleTb4b4b4[Ta5d6ff"inspect"Tb4b4b4] Tff7b72= Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff"[Emscripten Module object]"Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3ENVIRONMENT_IS_WEB Tff7b72|| Te6edf3ENVIRONMENT_IS_WORKERTb4b4b4) Tb4b4b4{
T8b949e// Note that this includes Node.js workers when relevant (pthreads is enabled).
T8b949e// Node.js workers are detected as a combination of ENVIRONMENT_IS_WORKER and
T8b949e// ENVIRONMENT_IS_NODE.
Tff7b72if Tb4b4b4(Te6edf3ENVIRONMENT_IS_WORKERTb4b4b4) Tb4b4b4{
T8b949e// Check worker, not web, since window could be polyfilled
Te6edf3scriptDirectory Tff7b72= Te6edf3selfTb4b4b4.Te6edf3locationTb4b4b4.Te6edf3hrefTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Tff7b72typeof Tffa657document Tff7b72!= Ta5d6ff"undefined" Tff7b72&& Tffa657documentTb4b4b4.Te6edf3currentScriptTb4b4b4) Tb4b4b4{
T8b949e// web
Te6edf3scriptDirectory Tff7b72= Tffa657documentTb4b4b4.Te6edf3currentScriptTb4b4b4.Te6edf3srcTb4b4b4;
Tb4b4b4}
T8b949e// When MODULARIZE, this JS may be executed later, after document.currentScript
T8b949e// is gone, so we saved it, and we use it here instead of any other info.
Tff7b72if Tb4b4b4(Te6edf3_scriptDirTb4b4b4) Tb4b4b4{
Te6edf3scriptDirectory Tff7b72= Te6edf3_scriptDirTb4b4b4;
Tb4b4b4}
T8b949e// blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them.
T8b949e// otherwise, slice off the final part of the url to find the script directory.
T8b949e// if scriptDirectory does not contain a slash, lastIndexOf will return -1,
T8b949e// and scriptDirectory will correctly be replaced with an empty string.
T8b949e// If scriptDirectory contains a query (starting with ?) or a fragment (starting with #),
T8b949e// they are removed because they could contain a slash.
Tff7b72if Tb4b4b4(Te6edf3scriptDirectoryTb4b4b4.Te6edf3indexOfTb4b4b4(Ta5d6ff"blob:"Tb4b4b4) Tff7b72!== T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3scriptDirectory Tff7b72= Te6edf3scriptDirectoryTb4b4b4.Te6edf3substrTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3scriptDirectoryTb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/[?#].*/Tb4b4b4, Ta5d6ff""Tb4b4b4)Tb4b4b4.Te6edf3lastIndexOfTb4b4b4(Ta5d6ff"/"Tb4b4b4) Tff7b72+ T79c0ff1Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3scriptDirectory Tff7b72= Ta5d6ff""Tb4b4b4;
Tb4b4b4}
T8b949e// Differentiate the Web Worker from the Node Worker case, as reading must
T8b949e// be done differently.
Tb4b4b4{
T8b949e// include: web_or_worker_shell_read.js
Te6edf3read_ Tff7b72= Tb4b4b4(Te6edf3urlTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3xhr Tff7b72= Tff7b72new Te6edf3XMLHttpRequestTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3xhrTb4b4b4.Te6edf3openTb4b4b4(Ta5d6ff"GET"Tb4b4b4, Te6edf3urlTb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3xhrTb4b4b4.Te6edf3sendTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3xhrTb4b4b4.Te6edf3responseTextTb4b4b4;
Tb4b4b4}Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3ENVIRONMENT_IS_WORKERTb4b4b4) Tb4b4b4{
Te6edf3readBinary Tff7b72= Tb4b4b4(Te6edf3urlTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3xhr Tff7b72= Tff7b72new Te6edf3XMLHttpRequestTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3xhrTb4b4b4.Te6edf3openTb4b4b4(Ta5d6ff"GET"Tb4b4b4, Te6edf3urlTb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3xhrTb4b4b4.Te6edf3responseType Tff7b72= Ta5d6ff"arraybuffer"Tb4b4b4;
Te6edf3xhrTb4b4b4.Te6edf3sendTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72new Tffa657Uint8ArrayTb4b4b4(T8b949e/** @type{!ArrayBuffer} */ Tb4b4b4(Te6edf3xhrTb4b4b4.Te6edf3responseTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Te6edf3readAsync Tff7b72= Tb4b4b4(Te6edf3urlTb4b4b4, Te6edf3onloadTb4b4b4, Te6edf3onerrorTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3xhr Tff7b72= Tff7b72new Te6edf3XMLHttpRequestTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3xhrTb4b4b4.Te6edf3openTb4b4b4(Ta5d6ff"GET"Tb4b4b4, Te6edf3urlTb4b4b4, Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3xhrTb4b4b4.Te6edf3responseType Tff7b72= Ta5d6ff"arraybuffer"Tb4b4b4;
Te6edf3xhrTb4b4b4.Te6edf3onload Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3xhrTb4b4b4.Te6edf3status Tff7b72== T79c0ff200 Tff7b72|| Tb4b4b4(Te6edf3xhrTb4b4b4.Te6edf3status Tff7b72== T79c0ff0 Tff7b72&& Te6edf3xhrTb4b4b4.Te6edf3responseTb4b4b4)Tb4b4b4) Tb4b4b4{
T8b949e// file URLs can return 0
Te6edf3onloadTb4b4b4(Te6edf3xhrTb4b4b4.Te6edf3responseTb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3onerrorTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3xhrTb4b4b4.Te6edf3onerror Tff7b72= Te6edf3onerrorTb4b4b4;
Te6edf3xhrTb4b4b4.Te6edf3sendTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
T8b949e// end include: web_or_worker_shell_read.js
Tb4b4b4}
Te6edf3setWindowTitle Tff7b72= Tb4b4b4(Te6edf3titleTb4b4b4) Tb4b4b4=> Tb4b4b4(Tffa657documentTb4b4b4.Te6edf3title Tff7b72= Te6edf3titleTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tb4b4b4}
Tff7b72var Te6edf3out Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"print"Tb4b4b4] Tff7b72|| Te6edf3consoleTb4b4b4.Te6edf3logTb4b4b4.Te6edf3bindTb4b4b4(Te6edf3consoleTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3err Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"printErr"Tb4b4b4] Tff7b72|| Te6edf3consoleTb4b4b4.Te6edf3warnTb4b4b4.Te6edf3bindTb4b4b4(Te6edf3consoleTb4b4b4)Tb4b4b4;
T8b949e// Merge back in the overrides
Tffa657ObjectTb4b4b4.Te6edf3assignTb4b4b4(Te6edf3ModuleTb4b4b4, Te6edf3moduleOverridesTb4b4b4)Tb4b4b4;
T8b949e// Free the object hierarchy contained in the overrides, this lets the GC
T8b949e// reclaim data used e.g. in memoryInitializerRequest, which is a large typed array.
Te6edf3moduleOverrides Tff7b72= Tff7b72nullTb4b4b4;
T8b949e// Emit code to handle expected values on the Module object. This applies Module.x
T8b949e// to the proper local x. This has two benefits: first, we only emit it if it is
T8b949e// expected to arrive, and second, by using a local everywhere else that can be
T8b949e// minified.
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"arguments"Tb4b4b4]Tb4b4b4) Te6edf3arguments_ Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"arguments"Tb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"thisProgram"Tb4b4b4]Tb4b4b4) Te6edf3thisProgram Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"thisProgram"Tb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"quit"Tb4b4b4]Tb4b4b4) Te6edf3quit_ Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"quit"Tb4b4b4]Tb4b4b4;
T8b949e// perform assertions in shell.js after we set up out() and err(), as otherwise if an assertion fails it cannot print the message
Tff7b72var Te6edf3STACK_ALIGN Tff7b72= T79c0ff16Tb4b4b4;
Tff7b72var Te6edf3POINTER_SIZE Tff7b72= T79c0ff4Tb4b4b4;
Tff7b72function Te6edf3getNativeTypeSizeTb4b4b4(Te6edf3typeTb4b4b4) Tb4b4b4{
Tff7b72switch Tb4b4b4(Te6edf3typeTb4b4b4) Tb4b4b4{
Tff7b72case Ta5d6ff"i1"Tff7b72:
Tff7b72case Ta5d6ff"i8"Tff7b72:
Tff7b72case Ta5d6ff"u8"Tff7b72:
Tff7b72return T79c0ff1Tb4b4b4;
Tff7b72case Ta5d6ff"i16"Tff7b72:
Tff7b72case Ta5d6ff"u16"Tff7b72:
Tff7b72return T79c0ff2Tb4b4b4;
Tff7b72case Ta5d6ff"i32"Tff7b72:
Tff7b72case Ta5d6ff"u32"Tff7b72:
Tff7b72return T79c0ff4Tb4b4b4;
Tff7b72case Ta5d6ff"i64"Tff7b72:
Tff7b72case Ta5d6ff"u64"Tff7b72:
Tff7b72return T79c0ff8Tb4b4b4;
Tff7b72case Ta5d6ff"float"Tff7b72:
Tff7b72return T79c0ff4Tb4b4b4;
Tff7b72case Ta5d6ff"double"Tff7b72:
Tff7b72return T79c0ff8Tb4b4b4;
Tff7b72defaultTff7b72: Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3typeTb4b4b4[Te6edf3typeTb4b4b4.Te6edf3length Tff7b72- T79c0ff1Tb4b4b4] Tff7b72=== Ta5d6ff"*"Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3POINTER_SIZETb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3typeTb4b4b4[T79c0ff0Tb4b4b4] Tff7b72=== Ta5d6ff"i"Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3bits Tff7b72= Tffa657NumberTb4b4b4(Te6edf3typeTb4b4b4.Te6edf3substrTb4b4b4(T79c0ff1Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3assertTb4b4b4(Te6edf3bits Tff7b72% T79c0ff8 Tff7b72=== T79c0ff0Tb4b4b4, Ta5d6ff"getNativeTypeSize invalid bits " Tff7b72+ Te6edf3bits Tff7b72+ Ta5d6ff", type " Tff7b72+ Te6edf3typeTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3bits Tff7b72/ T79c0ff8Tb4b4b4;
Tb4b4b4}
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
T8b949e// include: runtime_debug.js
T8b949e// end include: runtime_debug.js
T8b949e// === Preamble library stuff ===
T8b949e// Documentation for the public APIs defined in this file must be updated in:
T8b949e// site/source/docs/api_reference/preamble.js.rst
T8b949e// A prebuilt local version of the documentation is available at:
T8b949e// site/build/text/docs/api_reference/preamble.js.txt
T8b949e// You can also build docs locally as HTML or other formats in site/
T8b949e// An online HTML version (which may be of a different version of Emscripten)
T8b949e// is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html
Tff7b72var Te6edf3wasmBinaryTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"wasmBinary"Tb4b4b4]Tb4b4b4) Te6edf3wasmBinary Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"wasmBinary"Tb4b4b4]Tb4b4b4;
Tff7b72var Te6edf3noExitRuntime Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"noExitRuntime"Tb4b4b4] Tff7b72|| Tff7b72trueTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3WebAssembly Tff7b72!= Ta5d6ff"object"Tb4b4b4) Tb4b4b4{
Te6edf3abortTb4b4b4(Ta5d6ff"no native wasm support detected"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// Wasm globals
Tff7b72var Te6edf3wasmMemoryTb4b4b4;
T8b949e//========================================
T8b949e// Runtime essentials
T8b949e//========================================
T8b949e// whether we are quitting the application. no code should run after this.
T8b949e// set in exit() and abort()
Tff7b72var Te6edf3ABORT Tff7b72= Tff7b72falseTb4b4b4;
T8b949e// set by exit() and abort(). Passed to 'onExit' handler.
T8b949e// NOTE: This is also used as the process return code code in shell environments
T8b949e// but only when noExitRuntime is false.
Tff7b72var Te6edf3EXITSTATUSTb4b4b4;
T8b949e/** @type {function(*, string=)} */
Tff7b72function Te6edf3assertTb4b4b4(Te6edf3conditionTb4b4b4, Te6edf3textTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3conditionTb4b4b4) Tb4b4b4{
T8b949e// This build was created without ASSERTIONS defined. `assert()` should not
T8b949e// ever be called in this configuration but in case there are callers in
T8b949e// the wild leave this simple abort() implemenation here for now.
Te6edf3abortTb4b4b4(Te6edf3textTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
T8b949e// include: runtime_strings.js
T8b949e// runtime_strings.js: String related runtime functions that are part of both
T8b949e// MINIMAL_RUNTIME and regular runtime.
Tff7b72var Te6edf3UTF8Decoder Tff7b72= Tff7b72typeof Te6edf3TextDecoder Tff7b72!= Ta5d6ff"undefined" Tff7b72? Tff7b72new Te6edf3TextDecoderTb4b4b4(Ta5d6ff"utf8"Tb4b4b4) Tff7b72: Tff7b72undefinedTb4b4b4;
T8b949e/**
* Given a pointer 'idx' to a null-terminated UTF8-encoded string in the given
* array that contains uint8 values, returns a copy of that string as a
* Javascript String object.
* heapOrArray is either a regular array, or a JavaScript typed array view.
* @param {number} idx
* @param {number=} maxBytesToRead
* @return {string}
*/
Tff7b72function Te6edf3UTF8ArrayToStringTb4b4b4(Te6edf3heapOrArrayTb4b4b4, Te6edf3idxTb4b4b4, Te6edf3maxBytesToReadTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3endIdx Tff7b72= Te6edf3idx Tff7b72+ Te6edf3maxBytesToReadTb4b4b4;
Tff7b72var Te6edf3endPtr Tff7b72= Te6edf3idxTb4b4b4;
T8b949e// TextDecoder needs to know the byte length in advance, it doesn't stop on
T8b949e// null terminator by itself. Also, use the length info to avoid running tiny
T8b949e// strings through TextDecoder, since .subarray() allocates garbage.
T8b949e// (As a tiny code save trick, compare endPtr against endIdx using a negation,
T8b949e// so that undefined means Infinity)
Tff7b72while Tb4b4b4(Te6edf3heapOrArrayTb4b4b4[Te6edf3endPtrTb4b4b4] Tff7b72&& Tff7b72!Tb4b4b4(Te6edf3endPtr Tff7b72>= Te6edf3endIdxTb4b4b4)Tb4b4b4) Tff7b72++Te6edf3endPtrTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3endPtr Tff7b72- Te6edf3idx Tff7b72> T79c0ff16 Tff7b72&& Te6edf3heapOrArrayTb4b4b4.Te6edf3buffer Tff7b72&& Te6edf3UTF8DecoderTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3UTF8DecoderTb4b4b4.Te6edf3decodeTb4b4b4(Te6edf3heapOrArrayTb4b4b4.Te6edf3subarrayTb4b4b4(Te6edf3idxTb4b4b4, Te6edf3endPtrTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3str Tff7b72= Ta5d6ff""Tb4b4b4;
T8b949e// If building with TextDecoder, we have already computed the string length
T8b949e// above, so test loop end condition against that
Tff7b72while Tb4b4b4(Te6edf3idx Tff7b72< Te6edf3endPtrTb4b4b4) Tb4b4b4{
T8b949e// For UTF8 byte structure, see:
T8b949e// http://en.wikipedia.org/wiki/UTF-8#Description
T8b949e// https://www.ietf.org/rfc/rfc2279.txt
T8b949e// https://tools.ietf.org/html/rfc3629
Tff7b72var Te6edf3u0 Tff7b72= Te6edf3heapOrArrayTb4b4b4[Te6edf3idxTff7b72++Tb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Tb4b4b4(Te6edf3u0 Tff7b72& T79c0ff0x80Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3str Tff7b72+= Tffa657StringTb4b4b4.Te6edf3fromCharCodeTb4b4b4(Te6edf3u0Tb4b4b4)Tb4b4b4;
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3u1 Tff7b72= Te6edf3heapOrArrayTb4b4b4[Te6edf3idxTff7b72++Tb4b4b4] Tff7b72& T79c0ff63Tb4b4b4;
Tff7b72if Tb4b4b4(Tb4b4b4(Te6edf3u0 Tff7b72& T79c0ff0xe0Tb4b4b4) Tff7b72== T79c0ff0xc0Tb4b4b4) Tb4b4b4{
Te6edf3str Tff7b72+= Tffa657StringTb4b4b4.Te6edf3fromCharCodeTb4b4b4(Tb4b4b4(Tb4b4b4(Te6edf3u0 Tff7b72& T79c0ff31Tb4b4b4) Tff7b72<< T79c0ff6Tb4b4b4) Tff7b72| Te6edf3u1Tb4b4b4)Tb4b4b4;
Tff7b72continueTb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3u2 Tff7b72= Te6edf3heapOrArrayTb4b4b4[Te6edf3idxTff7b72++Tb4b4b4] Tff7b72& T79c0ff63Tb4b4b4;
Tff7b72if Tb4b4b4(Tb4b4b4(Te6edf3u0 Tff7b72& T79c0ff0xf0Tb4b4b4) Tff7b72== T79c0ff0xe0Tb4b4b4) Tb4b4b4{
Te6edf3u0 Tff7b72= Tb4b4b4(Tb4b4b4(Te6edf3u0 Tff7b72& T79c0ff15Tb4b4b4) Tff7b72<< T79c0ff12Tb4b4b4) Tff7b72| Tb4b4b4(Te6edf3u1 Tff7b72<< T79c0ff6Tb4b4b4) Tff7b72| Te6edf3u2Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3u0 Tff7b72= Tb4b4b4(Tb4b4b4(Te6edf3u0 Tff7b72& T79c0ff7Tb4b4b4) Tff7b72<< T79c0ff18Tb4b4b4) Tff7b72| Tb4b4b4(Te6edf3u1 Tff7b72<< T79c0ff12Tb4b4b4) Tff7b72| Tb4b4b4(Te6edf3u2 Tff7b72<< T79c0ff6Tb4b4b4) Tff7b72| Tb4b4b4(Te6edf3heapOrArrayTb4b4b4[Te6edf3idxTff7b72++Tb4b4b4] Tff7b72& T79c0ff63Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3u0 Tff7b72< T79c0ff0x10000Tb4b4b4) Tb4b4b4{
Te6edf3str Tff7b72+= Tffa657StringTb4b4b4.Te6edf3fromCharCodeTb4b4b4(Te6edf3u0Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72var Te6edf3ch Tff7b72= Te6edf3u0 Tff7b72- T79c0ff0x10000Tb4b4b4;
Te6edf3str Tff7b72+= Tffa657StringTb4b4b4.Te6edf3fromCharCodeTb4b4b4(T79c0ff0xd800 Tff7b72| Tb4b4b4(Te6edf3ch Tff7b72>> T79c0ff10Tb4b4b4)Tb4b4b4, T79c0ff0xdc00 Tff7b72| Tb4b4b4(Te6edf3ch Tff7b72& T79c0ff0x3ffTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Te6edf3strTb4b4b4;
Tb4b4b4}
T8b949e/**
* Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the
* emscripten HEAP, returns a copy of that string as a Javascript String object.
*
* @param {number} ptr
* @param {number=} maxBytesToRead - An optional length that specifies the
* maximum number of bytes to read. You can omit this parameter to scan the
* string until the first \0 byte. If maxBytesToRead is passed, and the string
* at [ptr, ptr+maxBytesToReadr[ contains a null byte in the middle, then the
* string will cut short at that byte index (i.e. maxBytesToRead will not
* produce a string of exact length [ptr, ptr+maxBytesToRead[) N.B. mixing
* frequent uses of UTF8ToString() with and without maxBytesToRead may throw
* JS JIT optimizations off, so it is worth to consider consistently using one
* @return {string}
*/
Tff7b72function Te6edf3UTF8ToStringTb4b4b4(Te6edf3ptrTb4b4b4, Te6edf3maxBytesToReadTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3ptr Tff7b72? Te6edf3UTF8ArrayToStringTb4b4b4(Te6edf3HEAPU8Tb4b4b4, Te6edf3ptrTb4b4b4, Te6edf3maxBytesToReadTb4b4b4) Tff7b72: Ta5d6ff""Tb4b4b4;
Tb4b4b4}
T8b949e/**
* Copies the given Javascript String object 'str' to the given byte array at
* address 'outIdx', encoded in UTF8 form and null-terminated. The copy will
* require at most str.length*4+1 bytes of space in the HEAP. Use the function
* lengthBytesUTF8 to compute the exact number of bytes (excluding null
* terminator) that this function will write.
*
* @param {string} str - The Javascript string to copy.
* @param {ArrayBufferView|Array<number>} heap - The array to copy to. Each
* index in this array is assumed
* to be one 8-byte element.
* @param {number} outIdx - The starting offset in the array to begin the copying.
* @param {number} maxBytesToWrite - The maximum number of bytes this function
* can write to the array. This count should
* include the null terminator, i.e. if
* maxBytesToWrite=1, only the null terminator
* will be written and nothing else.
* maxBytesToWrite=0 does not write any bytes
* to the output, not even the null
* terminator.
* @return {number} The number of bytes written, EXCLUDING the null terminator.
*/
Tff7b72function Te6edf3stringToUTF8ArrayTb4b4b4(Te6edf3strTb4b4b4, Te6edf3heapTb4b4b4, Te6edf3outIdxTb4b4b4, Te6edf3maxBytesToWriteTb4b4b4) Tb4b4b4{
T8b949e// Parameter maxBytesToWrite is not optional. Negative values, 0, null,
T8b949e// undefined and false each don't write out any bytes.
Tff7b72if Tb4b4b4(Tff7b72!Tb4b4b4(Te6edf3maxBytesToWrite Tff7b72> T79c0ff0Tb4b4b4)Tb4b4b4) Tff7b72return T79c0ff0Tb4b4b4;
Tff7b72var Te6edf3startIdx Tff7b72= Te6edf3outIdxTb4b4b4;
Tff7b72var Te6edf3endIdx Tff7b72= Te6edf3outIdx Tff7b72+ Te6edf3maxBytesToWrite Tff7b72- T79c0ff1Tb4b4b4; T8b949e// -1 for string null terminator.
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3strTb4b4b4.Te6edf3lengthTb4b4b4; Tff7b72++Te6edf3iTb4b4b4) Tb4b4b4{
T8b949e// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code
T8b949e// unit, not a Unicode code point of the character! So decode
T8b949e// UTF16->UTF32->UTF8.
T8b949e// See http://unicode.org/faq/utf_bom.html#utf16-3
T8b949e// For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description
T8b949e// and https://www.ietf.org/rfc/rfc2279.txt
T8b949e// and https://tools.ietf.org/html/rfc3629
Tff7b72var Te6edf3u Tff7b72= Te6edf3strTb4b4b4.Te6edf3charCodeAtTb4b4b4(Te6edf3iTb4b4b4)Tb4b4b4; T8b949e// possibly a lead surrogate
Tff7b72if Tb4b4b4(Te6edf3u Tff7b72>= T79c0ff0xd800 Tff7b72&& Te6edf3u Tff7b72<= T79c0ff0xdfffTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3u1 Tff7b72= Te6edf3strTb4b4b4.Te6edf3charCodeAtTb4b4b4(Tff7b72++Te6edf3iTb4b4b4)Tb4b4b4;
Te6edf3u Tff7b72= Tb4b4b4(T79c0ff0x10000 Tff7b72+ Tb4b4b4(Tb4b4b4(Te6edf3u Tff7b72& T79c0ff0x3ffTb4b4b4) Tff7b72<< T79c0ff10Tb4b4b4)Tb4b4b4) Tff7b72| Tb4b4b4(Te6edf3u1 Tff7b72& T79c0ff0x3ffTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3u Tff7b72<= T79c0ff0x7fTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3outIdx Tff7b72>= Te6edf3endIdxTb4b4b4) Tff7b72breakTb4b4b4;
Te6edf3heapTb4b4b4[Te6edf3outIdxTff7b72++Tb4b4b4] Tff7b72= Te6edf3uTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3u Tff7b72<= T79c0ff0x7ffTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3outIdx Tff7b72+ T79c0ff1 Tff7b72>= Te6edf3endIdxTb4b4b4) Tff7b72breakTb4b4b4;
Te6edf3heapTb4b4b4[Te6edf3outIdxTff7b72++Tb4b4b4] Tff7b72= T79c0ff0xc0 Tff7b72| Tb4b4b4(Te6edf3u Tff7b72>> T79c0ff6Tb4b4b4)Tb4b4b4;
Te6edf3heapTb4b4b4[Te6edf3outIdxTff7b72++Tb4b4b4] Tff7b72= T79c0ff0x80 Tff7b72| Tb4b4b4(Te6edf3u Tff7b72& T79c0ff63Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3u Tff7b72<= T79c0ff0xffffTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3outIdx Tff7b72+ T79c0ff2 Tff7b72>= Te6edf3endIdxTb4b4b4) Tff7b72breakTb4b4b4;
Te6edf3heapTb4b4b4[Te6edf3outIdxTff7b72++Tb4b4b4] Tff7b72= T79c0ff0xe0 Tff7b72| Tb4b4b4(Te6edf3u Tff7b72>> T79c0ff12Tb4b4b4)Tb4b4b4;
Te6edf3heapTb4b4b4[Te6edf3outIdxTff7b72++Tb4b4b4] Tff7b72= T79c0ff0x80 Tff7b72| Tb4b4b4(Tb4b4b4(Te6edf3u Tff7b72>> T79c0ff6Tb4b4b4) Tff7b72& T79c0ff63Tb4b4b4)Tb4b4b4;
Te6edf3heapTb4b4b4[Te6edf3outIdxTff7b72++Tb4b4b4] Tff7b72= T79c0ff0x80 Tff7b72| Tb4b4b4(Te6edf3u Tff7b72& T79c0ff63Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3outIdx Tff7b72+ T79c0ff3 Tff7b72>= Te6edf3endIdxTb4b4b4) Tff7b72breakTb4b4b4;
Te6edf3heapTb4b4b4[Te6edf3outIdxTff7b72++Tb4b4b4] Tff7b72= T79c0ff0xf0 Tff7b72| Tb4b4b4(Te6edf3u Tff7b72>> T79c0ff18Tb4b4b4)Tb4b4b4;
Te6edf3heapTb4b4b4[Te6edf3outIdxTff7b72++Tb4b4b4] Tff7b72= T79c0ff0x80 Tff7b72| Tb4b4b4(Tb4b4b4(Te6edf3u Tff7b72>> T79c0ff12Tb4b4b4) Tff7b72& T79c0ff63Tb4b4b4)Tb4b4b4;
Te6edf3heapTb4b4b4[Te6edf3outIdxTff7b72++Tb4b4b4] Tff7b72= T79c0ff0x80 Tff7b72| Tb4b4b4(Tb4b4b4(Te6edf3u Tff7b72>> T79c0ff6Tb4b4b4) Tff7b72& T79c0ff63Tb4b4b4)Tb4b4b4;
Te6edf3heapTb4b4b4[Te6edf3outIdxTff7b72++Tb4b4b4] Tff7b72= T79c0ff0x80 Tff7b72| Tb4b4b4(Te6edf3u Tff7b72& T79c0ff63Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
T8b949e// Null-terminate the pointer to the buffer.
Te6edf3heapTb4b4b4[Te6edf3outIdxTb4b4b4] Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72return Te6edf3outIdx Tff7b72- Te6edf3startIdxTb4b4b4;
Tb4b4b4}
T8b949e/**
* Copies the given Javascript String object 'str' to the emscripten HEAP at
* address 'outPtr', null-terminated and encoded in UTF8 form. The copy will
* require at most str.length*4+1 bytes of space in the HEAP.
* Use the function lengthBytesUTF8 to compute the exact number of bytes
* (excluding null terminator) that this function will write.
*
* @return {number} The number of bytes written, EXCLUDING the null terminator.
*/
Tff7b72function Te6edf3stringToUTF8Tb4b4b4(Te6edf3strTb4b4b4, Te6edf3outPtrTb4b4b4, Te6edf3maxBytesToWriteTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3stringToUTF8ArrayTb4b4b4(Te6edf3strTb4b4b4, Te6edf3HEAPU8Tb4b4b4, Te6edf3outPtrTb4b4b4, Te6edf3maxBytesToWriteTb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e/**
* Returns the number of bytes the given Javascript string takes if encoded as a
* UTF8 byte array, EXCLUDING the null terminator byte.
*
* @param {string} str - JavaScript string to operator on
* @return {number} Length, in bytes, of the UTF8 encoded string.
*/
Tff7b72function Te6edf3lengthBytesUTF8Tb4b4b4(Te6edf3strTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3len Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3strTb4b4b4.Te6edf3lengthTb4b4b4; Tff7b72++Te6edf3iTb4b4b4) Tb4b4b4{
T8b949e// Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code
T8b949e// unit, not a Unicode code point of the character! So decode
T8b949e// UTF16->UTF32->UTF8.
T8b949e// See http://unicode.org/faq/utf_bom.html#utf16-3
Tff7b72var Te6edf3c Tff7b72= Te6edf3strTb4b4b4.Te6edf3charCodeAtTb4b4b4(Te6edf3iTb4b4b4)Tb4b4b4; T8b949e// possibly a lead surrogate
Tff7b72if Tb4b4b4(Te6edf3c Tff7b72<= T79c0ff0x7fTb4b4b4) Tb4b4b4{
Te6edf3lenTff7b72++Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3c Tff7b72<= T79c0ff0x7ffTb4b4b4) Tb4b4b4{
Te6edf3len Tff7b72+= T79c0ff2Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3c Tff7b72>= T79c0ff0xd800 Tff7b72&& Te6edf3c Tff7b72<= T79c0ff0xdfffTb4b4b4) Tb4b4b4{
Te6edf3len Tff7b72+= T79c0ff4Tb4b4b4;
Tff7b72++Te6edf3iTb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3len Tff7b72+= T79c0ff3Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Te6edf3lenTb4b4b4;
Tb4b4b4}
T8b949e// end include: runtime_strings.js
T8b949e// Memory management
Tff7b72var Te6edf3HEAPTb4b4b4,
T8b949e/** @type {!ArrayBuffer} */
Te6edf3bufferTb4b4b4,
T8b949e/** @type {!Int8Array} */
Te6edf3HEAP8Tb4b4b4,
T8b949e/** @type {!Uint8Array} */
Te6edf3HEAPU8Tb4b4b4,
T8b949e/** @type {!Int16Array} */
Te6edf3HEAP16Tb4b4b4,
T8b949e/** @type {!Uint16Array} */
Te6edf3HEAPU16Tb4b4b4,
T8b949e/** @type {!Int32Array} */
Te6edf3HEAP32Tb4b4b4,
T8b949e/** @type {!Uint32Array} */
Te6edf3HEAPU32Tb4b4b4,
T8b949e/** @type {!Float32Array} */
Te6edf3HEAPF32Tb4b4b4,
T8b949e/** @type {!Float64Array} */
Te6edf3HEAPF64Tb4b4b4;
Tff7b72function Te6edf3updateGlobalBufferAndViewsTb4b4b4(Te6edf3bufTb4b4b4) Tb4b4b4{
Te6edf3buffer Tff7b72= Te6edf3bufTb4b4b4;
Te6edf3ModuleTb4b4b4[Ta5d6ff"HEAP8"Tb4b4b4] Tff7b72= Te6edf3HEAP8 Tff7b72= Tff7b72new Tffa657Int8ArrayTb4b4b4(Te6edf3bufTb4b4b4)Tb4b4b4;
Te6edf3ModuleTb4b4b4[Ta5d6ff"HEAP16"Tb4b4b4] Tff7b72= Te6edf3HEAP16 Tff7b72= Tff7b72new Tffa657Int16ArrayTb4b4b4(Te6edf3bufTb4b4b4)Tb4b4b4;
Te6edf3ModuleTb4b4b4[Ta5d6ff"HEAP32"Tb4b4b4] Tff7b72= Te6edf3HEAP32 Tff7b72= Tff7b72new Tffa657Int32ArrayTb4b4b4(Te6edf3bufTb4b4b4)Tb4b4b4;
Te6edf3ModuleTb4b4b4[Ta5d6ff"HEAPU8"Tb4b4b4] Tff7b72= Te6edf3HEAPU8 Tff7b72= Tff7b72new Tffa657Uint8ArrayTb4b4b4(Te6edf3bufTb4b4b4)Tb4b4b4;
Te6edf3ModuleTb4b4b4[Ta5d6ff"HEAPU16"Tb4b4b4] Tff7b72= Te6edf3HEAPU16 Tff7b72= Tff7b72new Tffa657Uint16ArrayTb4b4b4(Te6edf3bufTb4b4b4)Tb4b4b4;
Te6edf3ModuleTb4b4b4[Ta5d6ff"HEAPU32"Tb4b4b4] Tff7b72= Te6edf3HEAPU32 Tff7b72= Tff7b72new Tffa657Uint32ArrayTb4b4b4(Te6edf3bufTb4b4b4)Tb4b4b4;
Te6edf3ModuleTb4b4b4[Ta5d6ff"HEAPF32"Tb4b4b4] Tff7b72= Te6edf3HEAPF32 Tff7b72= Tff7b72new Tffa657Float32ArrayTb4b4b4(Te6edf3bufTb4b4b4)Tb4b4b4;
Te6edf3ModuleTb4b4b4[Ta5d6ff"HEAPF64"Tb4b4b4] Tff7b72= Te6edf3HEAPF64 Tff7b72= Tff7b72new Tffa657Float64ArrayTb4b4b4(Te6edf3bufTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3STACK_SIZE Tff7b72= T79c0ff5242880Tb4b4b4;
Tff7b72var Te6edf3INITIAL_MEMORY Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"INITIAL_MEMORY"Tb4b4b4] Tff7b72|| T79c0ff16777216Tb4b4b4;
T8b949e// include: runtime_init_table.js
T8b949e// In regular non-RELOCATABLE mode the table is exported
T8b949e// from the wasm module and this will be assigned once
T8b949e// the exports are available.
Tff7b72var Te6edf3wasmTableTb4b4b4;
T8b949e// end include: runtime_init_table.js
T8b949e// include: runtime_stack_check.js
T8b949e// end include: runtime_stack_check.js
T8b949e// include: runtime_assertions.js
T8b949e// end include: runtime_assertions.js
Tff7b72var Te6edf3__ATPRERUN__ Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4; T8b949e// functions called before the runtime is initialized
Tff7b72var Te6edf3__ATINIT__ Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4; T8b949e// functions called during startup
Tff7b72var Te6edf3__ATMAIN__ Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4; T8b949e// functions called when main() is to be run
Tff7b72var Te6edf3__ATEXIT__ Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4; T8b949e// functions called during shutdown
Tff7b72var Te6edf3__ATPOSTRUN__ Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4; T8b949e// functions called after the main() is called
Tff7b72var Te6edf3runtimeInitialized Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72function Te6edf3keepRuntimeAliveTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3noExitRuntimeTb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3preRunTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"preRun"Tb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3ModuleTb4b4b4[Ta5d6ff"preRun"Tb4b4b4] Tff7b72== Ta5d6ff"function"Tb4b4b4) Te6edf3ModuleTb4b4b4[Ta5d6ff"preRun"Tb4b4b4] Tff7b72= Tb4b4b4[Te6edf3ModuleTb4b4b4[Ta5d6ff"preRun"Tb4b4b4]Tb4b4b4]Tb4b4b4;
Tff7b72while Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"preRun"Tb4b4b4]Tb4b4b4.Te6edf3lengthTb4b4b4) Tb4b4b4{
Te6edf3addOnPreRunTb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"preRun"Tb4b4b4]Tb4b4b4.Te6edf3shiftTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Te6edf3callRuntimeCallbacksTb4b4b4(Te6edf3__ATPRERUN__Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3initRuntimeTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3runtimeInitialized Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3ModuleTb4b4b4[Ta5d6ff"noFSInit"Tb4b4b4] Tff7b72&& Tff7b72!Te6edf3FSTb4b4b4.Te6edf3initTb4b4b4.Te6edf3initializedTb4b4b4) Te6edf3FSTb4b4b4.Te6edf3initTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3ignorePermissions Tff7b72= Tff7b72falseTb4b4b4;
Te6edf3TTYTb4b4b4.Te6edf3initTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3callRuntimeCallbacksTb4b4b4(Te6edf3__ATINIT__Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3preMainTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3callRuntimeCallbacksTb4b4b4(Te6edf3__ATMAIN__Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3postRunTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"postRun"Tb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3ModuleTb4b4b4[Ta5d6ff"postRun"Tb4b4b4] Tff7b72== Ta5d6ff"function"Tb4b4b4) Te6edf3ModuleTb4b4b4[Ta5d6ff"postRun"Tb4b4b4] Tff7b72= Tb4b4b4[Te6edf3ModuleTb4b4b4[Ta5d6ff"postRun"Tb4b4b4]Tb4b4b4]Tb4b4b4;
Tff7b72while Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"postRun"Tb4b4b4]Tb4b4b4.Te6edf3lengthTb4b4b4) Tb4b4b4{
Te6edf3addOnPostRunTb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"postRun"Tb4b4b4]Tb4b4b4.Te6edf3shiftTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Te6edf3callRuntimeCallbacksTb4b4b4(Te6edf3__ATPOSTRUN__Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3addOnPreRunTb4b4b4(Te6edf3cbTb4b4b4) Tb4b4b4{
Te6edf3__ATPRERUN__Tb4b4b4.Te6edf3unshiftTb4b4b4(Te6edf3cbTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3addOnInitTb4b4b4(Te6edf3cbTb4b4b4) Tb4b4b4{
Te6edf3__ATINIT__Tb4b4b4.Te6edf3unshiftTb4b4b4(Te6edf3cbTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3addOnPreMainTb4b4b4(Te6edf3cbTb4b4b4) Tb4b4b4{
Te6edf3__ATMAIN__Tb4b4b4.Te6edf3unshiftTb4b4b4(Te6edf3cbTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3addOnExitTb4b4b4(Te6edf3cbTb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72function Te6edf3addOnPostRunTb4b4b4(Te6edf3cbTb4b4b4) Tb4b4b4{
Te6edf3__ATPOSTRUN__Tb4b4b4.Te6edf3unshiftTb4b4b4(Te6edf3cbTb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// include: runtime_math.js
T8b949e// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul
T8b949e// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/fround
T8b949e// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/clz32
T8b949e// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc
T8b949e// end include: runtime_math.js
T8b949e// A counter of dependencies for calling run(). If we need to
T8b949e// do asynchronous work before running, increment this and
T8b949e// decrement it. Incrementing must happen in a place like
T8b949e// Module.preRun (used by emcc to add file preloading).
T8b949e// Note that you can add dependencies in preRun, even though
T8b949e// it happens right before run - run will be postponed until
T8b949e// the dependencies are met.
Tff7b72var Te6edf3runDependencies Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72var Te6edf3runDependencyWatcher Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72var Te6edf3dependenciesFulfilled Tff7b72= Tff7b72nullTb4b4b4; T8b949e// overridden to take different actions when all run dependencies are fulfilled
Tff7b72function Te6edf3getUniqueRunDependencyTb4b4b4(Te6edf3idTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3idTb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3addRunDependencyTb4b4b4(Te6edf3idTb4b4b4) Tb4b4b4{
Te6edf3runDependenciesTff7b72++Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"monitorRunDependencies"Tb4b4b4]Tb4b4b4) Tb4b4b4{
Te6edf3ModuleTb4b4b4[Ta5d6ff"monitorRunDependencies"Tb4b4b4]Tb4b4b4(Te6edf3runDependenciesTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72function Te6edf3removeRunDependencyTb4b4b4(Te6edf3idTb4b4b4) Tb4b4b4{
Te6edf3runDependenciesTff7b72--Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"monitorRunDependencies"Tb4b4b4]Tb4b4b4) Tb4b4b4{
Te6edf3ModuleTb4b4b4[Ta5d6ff"monitorRunDependencies"Tb4b4b4]Tb4b4b4(Te6edf3runDependenciesTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3runDependencies Tff7b72== T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3runDependencyWatcher Tff7b72!== Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3clearIntervalTb4b4b4(Te6edf3runDependencyWatcherTb4b4b4)Tb4b4b4;
Te6edf3runDependencyWatcher Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3dependenciesFulfilledTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3callback Tff7b72= Te6edf3dependenciesFulfilledTb4b4b4;
Te6edf3dependenciesFulfilled Tff7b72= Tff7b72nullTb4b4b4;
Te6edf3callbackTb4b4b4(Tb4b4b4)Tb4b4b4; T8b949e// can add another dependenciesFulfilled
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
T8b949e/** @param {string|number=} what */
Tff7b72function Te6edf3abortTb4b4b4(Te6edf3whatTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"onAbort"Tb4b4b4]Tb4b4b4) Tb4b4b4{
Te6edf3ModuleTb4b4b4[Ta5d6ff"onAbort"Tb4b4b4]Tb4b4b4(Te6edf3whatTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3what Tff7b72= Ta5d6ff"Aborted(" Tff7b72+ Te6edf3what Tff7b72+ Ta5d6ff")"Tb4b4b4;
T8b949e// TODO(sbc): Should we remove printing and leave it up to whoever
T8b949e// catches the exception?
Te6edf3errTb4b4b4(Te6edf3whatTb4b4b4)Tb4b4b4;
Te6edf3ABORT Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3EXITSTATUS Tff7b72= T79c0ff1Tb4b4b4;
Te6edf3what Tff7b72+= Ta5d6ff". Build with -sASSERTIONS for more info."Tb4b4b4;
T8b949e// Use a wasm runtime error, because a JS error might be seen as a foreign
T8b949e// exception, which means we'd run destructors on it. We need the error to
T8b949e// simply make the program stop.
T8b949e// FIXME This approach does not work in Wasm EH because it currently does not assume
T8b949e// all RuntimeErrors are from traps; it decides whether a RuntimeError is from
T8b949e// a trap or not based on a hidden field within the object. So at the moment
T8b949e// we don't have a way of throwing a wasm trap from JS. TODO Make a JS API that
T8b949e// allows this in the wasm spec.
T8b949e// Suppress closure compiler warning here. Closure compiler's builtin extern
T8b949e// defintion for WebAssembly.RuntimeError claims it takes no arguments even
T8b949e// though it can.
T8b949e// TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure gets fixed.
T8b949e/** @suppress {checkTypes} */
Tff7b72var Te6edf3e Tff7b72= Tff7b72new Te6edf3WebAssemblyTb4b4b4.Te6edf3RuntimeErrorTb4b4b4(Te6edf3whatTb4b4b4)Tb4b4b4;
Te6edf3readyPromiseRejectTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
T8b949e// Throw the error whether or not MODULARIZE is set because abort is used
T8b949e// in code paths apart from instantiation where an exception is expected
T8b949e// to be thrown when abort is called.
Tff7b72throw Te6edf3eTb4b4b4;
Tb4b4b4}
T8b949e// {{MEM_INITIALIZER}}
T8b949e// include: memoryprofiler.js
T8b949e// end include: memoryprofiler.js
T8b949e// include: URIUtils.js
T8b949e// Prefix of data URIs emitted by SINGLE_FILE and related options.
Tff7b72var Te6edf3dataURIPrefix Tff7b72= Ta5d6ff"data:application/octet-stream;base64,"Tb4b4b4;
T8b949e// Indicates whether filename is a base64 data URI.
Tff7b72function Te6edf3isDataURITb4b4b4(Te6edf3filenameTb4b4b4) Tb4b4b4{
T8b949e// Prefix of data URIs emitted by SINGLE_FILE and related options.
Tff7b72return Te6edf3filenameTb4b4b4.Te6edf3startsWithTb4b4b4(Te6edf3dataURIPrefixTb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// Indicates whether filename is delivered via file protocol (as opposed to http/https)
Tff7b72function Te6edf3isFileURITb4b4b4(Te6edf3filenameTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3filenameTb4b4b4.Te6edf3startsWithTb4b4b4(Ta5d6ff"file://"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// end include: URIUtils.js
Tff7b72var Te6edf3wasmBinaryFileTb4b4b4;
Te6edf3wasmBinaryFile Tff7b72= Ta5d6ff"c2enc.wasm"Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3isDataURITb4b4b4(Te6edf3wasmBinaryFileTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3wasmBinaryFile Tff7b72= Te6edf3locateFileTb4b4b4(Te6edf3wasmBinaryFileTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3getBinaryTb4b4b4(Te6edf3fileTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3file Tff7b72== Te6edf3wasmBinaryFile Tff7b72&& Te6edf3wasmBinaryTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72new Tffa657Uint8ArrayTb4b4b4(Te6edf3wasmBinaryTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3readBinaryTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3readBinaryTb4b4b4(Te6edf3fileTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72throw Ta5d6ff"both async and sync fetching of the wasm failed"Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3errTb4b4b4) Tb4b4b4{
Te6edf3abortTb4b4b4(Te6edf3errTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72function Te6edf3getBinaryPromiseTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// If we don't have the binary yet, try to to load it asynchronously.
T8b949e// Fetch has some additional restrictions over XHR, like it can't be used on a file:// url.
T8b949e// See https://github.com/github/fetch/pull/92#issuecomment-140665932
T8b949e// Cordova or Electron apps are typically loaded from a file:// url.
T8b949e// So use fetch if it is available and the url is not a file, otherwise fall back to XHR.
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3wasmBinary Tff7b72&& Tb4b4b4(Te6edf3ENVIRONMENT_IS_WEB Tff7b72|| Te6edf3ENVIRONMENT_IS_WORKERTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3fetch Tff7b72== Ta5d6ff"function" Tff7b72&& Tff7b72!Te6edf3isFileURITb4b4b4(Te6edf3wasmBinaryFileTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3fetchTb4b4b4(Te6edf3wasmBinaryFileTb4b4b4, Tb4b4b4{ Te6edf3credentialsTff7b72: Ta5d6ff"same-origin" Tb4b4b4}Tb4b4b4)
Tb4b4b4.Te6edf3thenTb4b4b4(Tff7b72function Tb4b4b4(Te6edf3responseTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3responseTb4b4b4[Ta5d6ff"ok"Tb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72throw Ta5d6ff"failed to load wasm binary file at '" Tff7b72+ Te6edf3wasmBinaryFile Tff7b72+ Ta5d6ff"'"Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3responseTb4b4b4[Ta5d6ff"arrayBuffer"Tb4b4b4]Tb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)
Tb4b4b4.Tff7b72catchTb4b4b4(Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3getBinaryTb4b4b4(Te6edf3wasmBinaryFileTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3readAsyncTb4b4b4) Tb4b4b4{
T8b949e// fetch is not available or url is file => try XHR (readAsync uses XHR internally)
Tff7b72return Tff7b72new Tffa657PromiseTb4b4b4(Tff7b72function Tb4b4b4(Te6edf3resolveTb4b4b4, Te6edf3rejectTb4b4b4) Tb4b4b4{
Te6edf3readAsyncTb4b4b4(
Te6edf3wasmBinaryFileTb4b4b4,
Tff7b72function Tb4b4b4(Te6edf3responseTb4b4b4) Tb4b4b4{
Te6edf3resolveTb4b4b4(Tff7b72new Tffa657Uint8ArrayTb4b4b4(T8b949e/** @type{!ArrayBuffer} */ Tb4b4b4(Te6edf3responseTb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3reject
Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
T8b949e// Otherwise, getBinary should be able to get it synchronously
Tff7b72return Tffa657PromiseTb4b4b4.Te6edf3resolveTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3thenTb4b4b4(Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3getBinaryTb4b4b4(Te6edf3wasmBinaryFileTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// Create the wasm instance.
T8b949e// Receives the wasm imports, returns the exports.
Tff7b72function Te6edf3createWasmTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// prepare imports
Tff7b72var Te6edf3info Tff7b72= Tb4b4b4{
Te6edf3envTff7b72: Te6edf3asmLibraryArgTb4b4b4,
Te6edf3wasi_snapshot_preview1Tff7b72: Te6edf3asmLibraryArgTb4b4b4,
Tb4b4b4}Tb4b4b4;
T8b949e// Load the wasm module and create an instance of using native support in the JS engine.
T8b949e// handle a generated wasm instance, receiving its exports and
T8b949e// performing other necessary setup
T8b949e/** @param {WebAssembly.Module=} module*/
Tff7b72function Te6edf3receiveInstanceTb4b4b4(Te6edf3instanceTb4b4b4, Te6edf3moduleTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3exports Tff7b72= Te6edf3instanceTb4b4b4.Te6edf3exportsTb4b4b4;
Te6edf3ModuleTb4b4b4[Ta5d6ff"asm"Tb4b4b4] Tff7b72= Te6edf3exportsTb4b4b4;
Te6edf3wasmMemory Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"asm"Tb4b4b4]Tb4b4b4[Ta5d6ff"memory"Tb4b4b4]Tb4b4b4;
Te6edf3updateGlobalBufferAndViewsTb4b4b4(Te6edf3wasmMemoryTb4b4b4.Te6edf3bufferTb4b4b4)Tb4b4b4;
Te6edf3wasmTable Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"asm"Tb4b4b4]Tb4b4b4[Ta5d6ff"__indirect_function_table"Tb4b4b4]Tb4b4b4;
Te6edf3addOnInitTb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"asm"Tb4b4b4]Tb4b4b4[Ta5d6ff"__wasm_call_ctors"Tb4b4b4]Tb4b4b4)Tb4b4b4;
Te6edf3removeRunDependencyTb4b4b4(Ta5d6ff"wasm-instantiate"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// we can't run yet (except in a pthread, where we have a custom sync instantiator)
Te6edf3addRunDependencyTb4b4b4(Ta5d6ff"wasm-instantiate"Tb4b4b4)Tb4b4b4;
T8b949e// Prefer streaming instantiation if available.
Tff7b72function Te6edf3receiveInstantiationResultTb4b4b4(Te6edf3resultTb4b4b4) Tb4b4b4{
T8b949e// 'result' is a ResultObject object which has both the module and instance.
T8b949e// receiveInstance() will swap in the exports (to Module.asm) so they can be called
T8b949e// TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193, the above line no longer optimizes out down to the following line.
T8b949e// When the regression is fixed, can restore the above USE_PTHREADS-enabled path.
Te6edf3receiveInstanceTb4b4b4(Te6edf3resultTb4b4b4[Ta5d6ff"instance"Tb4b4b4]Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3instantiateArrayBufferTb4b4b4(Te6edf3receiverTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3getBinaryPromiseTb4b4b4(Tb4b4b4)
Tb4b4b4.Te6edf3thenTb4b4b4(Tff7b72function Tb4b4b4(Te6edf3binaryTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3WebAssemblyTb4b4b4.Te6edf3instantiateTb4b4b4(Te6edf3binaryTb4b4b4, Te6edf3infoTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)
Tb4b4b4.Te6edf3thenTb4b4b4(Tff7b72function Tb4b4b4(Te6edf3instanceTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3instanceTb4b4b4;
Tb4b4b4}Tb4b4b4)
Tb4b4b4.Te6edf3thenTb4b4b4(Te6edf3receiverTb4b4b4, Tff7b72function Tb4b4b4(Te6edf3reasonTb4b4b4) Tb4b4b4{
Te6edf3errTb4b4b4(Ta5d6ff"failed to asynchronously prepare wasm: " Tff7b72+ Te6edf3reasonTb4b4b4)Tb4b4b4;
Te6edf3abortTb4b4b4(Te6edf3reasonTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3instantiateAsyncTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(
Tff7b72!Te6edf3wasmBinary Tff7b72&&
Tff7b72typeof Te6edf3WebAssemblyTb4b4b4.Te6edf3instantiateStreaming Tff7b72== Ta5d6ff"function" Tff7b72&&
Tff7b72!Te6edf3isDataURITb4b4b4(Te6edf3wasmBinaryFileTb4b4b4) Tff7b72&&
T8b949e// Don't use streaming for file:// delivered objects in a webview, fetch them synchronously.
Tff7b72!Te6edf3isFileURITb4b4b4(Te6edf3wasmBinaryFileTb4b4b4) Tff7b72&&
T8b949e// Avoid instantiateStreaming() on Node.js environment for now, as while
T8b949e// Node.js v18.1.0 implements it, it does not have a full fetch()
T8b949e// implementation yet.
T8b949e//
T8b949e// Reference:
T8b949e// https://github.com/emscripten-core/emscripten/pull/16917
Tff7b72!Te6edf3ENVIRONMENT_IS_NODE Tff7b72&&
Tff7b72typeof Te6edf3fetch Tff7b72== Ta5d6ff"function"
Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3fetchTb4b4b4(Te6edf3wasmBinaryFileTb4b4b4, Tb4b4b4{ Te6edf3credentialsTff7b72: Ta5d6ff"same-origin" Tb4b4b4}Tb4b4b4)Tb4b4b4.Te6edf3thenTb4b4b4(Tff7b72function Tb4b4b4(Te6edf3responseTb4b4b4) Tb4b4b4{
T8b949e// Suppress closure warning here since the upstream definition for
T8b949e// instantiateStreaming only allows Promise<Repsponse> rather than
T8b949e// an actual Response.
T8b949e// TODO(https://github.com/google/closure-compiler/pull/3913): Remove if/when upstream closure is fixed.
T8b949e/** @suppress {checkTypes} */
Tff7b72var Te6edf3result Tff7b72= Te6edf3WebAssemblyTb4b4b4.Te6edf3instantiateStreamingTb4b4b4(Te6edf3responseTb4b4b4, Te6edf3infoTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3resultTb4b4b4.Te6edf3thenTb4b4b4(Te6edf3receiveInstantiationResultTb4b4b4, Tff7b72function Tb4b4b4(Te6edf3reasonTb4b4b4) Tb4b4b4{
T8b949e// We expect the most common failure cause to be a bad MIME type for the binary,
T8b949e// in which case falling back to ArrayBuffer instantiation should work.
Te6edf3errTb4b4b4(Ta5d6ff"wasm streaming compile failed: " Tff7b72+ Te6edf3reasonTb4b4b4)Tb4b4b4;
Te6edf3errTb4b4b4(Ta5d6ff"falling back to ArrayBuffer instantiation"Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3instantiateArrayBufferTb4b4b4(Te6edf3receiveInstantiationResultTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72return Te6edf3instantiateArrayBufferTb4b4b4(Te6edf3receiveInstantiationResultTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
T8b949e// User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback
T8b949e// to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel
T8b949e// to any other async startup actions they are performing.
T8b949e// Also pthreads and wasm workers initialize the wasm instance through this path.
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"instantiateWasm"Tb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72var Te6edf3exports Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"instantiateWasm"Tb4b4b4]Tb4b4b4(Te6edf3infoTb4b4b4, Te6edf3receiveInstanceTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3exportsTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3errTb4b4b4(Ta5d6ff"Module.instantiateWasm callback failed with error: " Tff7b72+ Te6edf3eTb4b4b4)Tb4b4b4;
T8b949e// If instantiation fails, reject the module ready promise.
Te6edf3readyPromiseRejectTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
T8b949e// If instantiation fails, reject the module ready promise.
Te6edf3instantiateAsyncTb4b4b4(Tb4b4b4)Tb4b4b4.Tff7b72catchTb4b4b4(Te6edf3readyPromiseRejectTb4b4b4)Tb4b4b4;
Tff7b72return Tb4b4b4{Tb4b4b4}Tb4b4b4; T8b949e// no exports yet; we'll fill them in later
Tb4b4b4}
T8b949e// Globals used by JS i64 conversions (see makeSetValue)
Tff7b72var Te6edf3tempDoubleTb4b4b4;
Tff7b72var Te6edf3tempI64Tb4b4b4;
T8b949e// === Body ===
Tff7b72var Te6edf3ASM_CONSTS Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
T8b949e/** @constructor */
Tff7b72function Te6edf3ExitStatusTb4b4b4(Te6edf3statusTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3name Tff7b72= Ta5d6ff"ExitStatus"Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3message Tff7b72= Ta5d6ff"Program terminated with exit(" Tff7b72+ Te6edf3status Tff7b72+ Ta5d6ff")"Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3status Tff7b72= Te6edf3statusTb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3callRuntimeCallbacksTb4b4b4(Te6edf3callbacksTb4b4b4) Tb4b4b4{
Tff7b72while Tb4b4b4(Te6edf3callbacksTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
T8b949e// Pass the module as the first argument.
Te6edf3callbacksTb4b4b4.Te6edf3shiftTb4b4b4(Tb4b4b4)Tb4b4b4(Te6edf3ModuleTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
T8b949e/**
* @param {number} ptr
* @param {string} type
*/
Tff7b72function Te6edf3getValueTb4b4b4(Te6edf3ptrTb4b4b4, Te6edf3type Tff7b72= Ta5d6ff"i8"Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3typeTb4b4b4.Te6edf3endsWithTb4b4b4(Ta5d6ff"*"Tb4b4b4)Tb4b4b4) Te6edf3type Tff7b72= Ta5d6ff"*"Tb4b4b4;
Tff7b72switch Tb4b4b4(Te6edf3typeTb4b4b4) Tb4b4b4{
Tff7b72case Ta5d6ff"i1"Tff7b72:
Tff7b72return Te6edf3HEAP8Tb4b4b4[Te6edf3ptr Tff7b72>> T79c0ff0Tb4b4b4]Tb4b4b4;
Tff7b72case Ta5d6ff"i8"Tff7b72:
Tff7b72return Te6edf3HEAP8Tb4b4b4[Te6edf3ptr Tff7b72>> T79c0ff0Tb4b4b4]Tb4b4b4;
Tff7b72case Ta5d6ff"i16"Tff7b72:
Tff7b72return Te6edf3HEAP16Tb4b4b4[Te6edf3ptr Tff7b72>> T79c0ff1Tb4b4b4]Tb4b4b4;
Tff7b72case Ta5d6ff"i32"Tff7b72:
Tff7b72return Te6edf3HEAP32Tb4b4b4[Te6edf3ptr Tff7b72>> T79c0ff2Tb4b4b4]Tb4b4b4;
Tff7b72case Ta5d6ff"i64"Tff7b72:
Tff7b72return Te6edf3HEAP32Tb4b4b4[Te6edf3ptr Tff7b72>> T79c0ff2Tb4b4b4]Tb4b4b4;
Tff7b72case Ta5d6ff"float"Tff7b72:
Tff7b72return Te6edf3HEAPF32Tb4b4b4[Te6edf3ptr Tff7b72>> T79c0ff2Tb4b4b4]Tb4b4b4;
Tff7b72case Ta5d6ff"double"Tff7b72:
Tff7b72return Te6edf3HEAPF64Tb4b4b4[Te6edf3ptr Tff7b72>> T79c0ff3Tb4b4b4]Tb4b4b4;
Tff7b72case Ta5d6ff"*"Tff7b72:
Tff7b72return Te6edf3HEAPU32Tb4b4b4[Te6edf3ptr Tff7b72>> T79c0ff2Tb4b4b4]Tb4b4b4;
Tff7b72defaultTff7b72:
Te6edf3abortTb4b4b4(Ta5d6ff"invalid type for getValue: " Tff7b72+ Te6edf3typeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
T8b949e/**
* @param {number} ptr
* @param {number} value
* @param {string} type
*/
Tff7b72function Te6edf3setValueTb4b4b4(Te6edf3ptrTb4b4b4, Te6edf3valueTb4b4b4, Te6edf3type Tff7b72= Ta5d6ff"i8"Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3typeTb4b4b4.Te6edf3endsWithTb4b4b4(Ta5d6ff"*"Tb4b4b4)Tb4b4b4) Te6edf3type Tff7b72= Ta5d6ff"*"Tb4b4b4;
Tff7b72switch Tb4b4b4(Te6edf3typeTb4b4b4) Tb4b4b4{
Tff7b72case Ta5d6ff"i1"Tff7b72:
Te6edf3HEAP8Tb4b4b4[Te6edf3ptr Tff7b72>> T79c0ff0Tb4b4b4] Tff7b72= Te6edf3valueTb4b4b4;
Tff7b72breakTb4b4b4;
Tff7b72case Ta5d6ff"i8"Tff7b72:
Te6edf3HEAP8Tb4b4b4[Te6edf3ptr Tff7b72>> T79c0ff0Tb4b4b4] Tff7b72= Te6edf3valueTb4b4b4;
Tff7b72breakTb4b4b4;
Tff7b72case Ta5d6ff"i16"Tff7b72:
Te6edf3HEAP16Tb4b4b4[Te6edf3ptr Tff7b72>> T79c0ff1Tb4b4b4] Tff7b72= Te6edf3valueTb4b4b4;
Tff7b72breakTb4b4b4;
Tff7b72case Ta5d6ff"i32"Tff7b72:
Te6edf3HEAP32Tb4b4b4[Te6edf3ptr Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3valueTb4b4b4;
Tff7b72breakTb4b4b4;
Tff7b72case Ta5d6ff"i64"Tff7b72:
Tb4b4b4(Tb4b4b4(Te6edf3tempI64 Tff7b72= Tb4b4b4[
Te6edf3value Tff7b72>>> T79c0ff0Tb4b4b4,
Tb4b4b4(Tb4b4b4(Te6edf3tempDouble Tff7b72= Te6edf3valueTb4b4b4)Tb4b4b4,
Tff7b72+Tffa657MathTb4b4b4.Te6edf3absTb4b4b4(Te6edf3tempDoubleTb4b4b4) Tff7b72>= T79c0ff1.0
Tff7b72? Te6edf3tempDouble Tff7b72> T79c0ff0.0
Tff7b72? Tb4b4b4(Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Tff7b72+Tffa657MathTb4b4b4.Te6edf3floorTb4b4b4(Te6edf3tempDouble Tff7b72/ T79c0ff4294967296.0Tb4b4b4)Tb4b4b4, T79c0ff4294967295.0Tb4b4b4) Tff7b72| T79c0ff0Tb4b4b4) Tff7b72>>> T79c0ff0
Tff7b72: Tff7b72~Tff7b72~Tff7b72+Tffa657MathTb4b4b4.Te6edf3ceilTb4b4b4(Tb4b4b4(Te6edf3tempDouble Tff7b72- Tff7b72+Tb4b4b4(Tff7b72~Tff7b72~Te6edf3tempDouble Tff7b72>>> T79c0ff0Tb4b4b4)Tb4b4b4) Tff7b72/ T79c0ff4294967296.0Tb4b4b4) Tff7b72>>> T79c0ff0
Tff7b72: T79c0ff0Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3HEAP32Tb4b4b4[Te6edf3ptr Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3tempI64Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3ptr Tff7b72+ T79c0ff4Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3tempI64Tb4b4b4[T79c0ff1Tb4b4b4]Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72breakTb4b4b4;
Tff7b72case Ta5d6ff"float"Tff7b72:
Te6edf3HEAPF32Tb4b4b4[Te6edf3ptr Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3valueTb4b4b4;
Tff7b72breakTb4b4b4;
Tff7b72case Ta5d6ff"double"Tff7b72:
Te6edf3HEAPF64Tb4b4b4[Te6edf3ptr Tff7b72>> T79c0ff3Tb4b4b4] Tff7b72= Te6edf3valueTb4b4b4;
Tff7b72breakTb4b4b4;
Tff7b72case Ta5d6ff"*"Tff7b72:
Te6edf3HEAPU32Tb4b4b4[Te6edf3ptr Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3valueTb4b4b4;
Tff7b72breakTb4b4b4;
Tff7b72defaultTff7b72:
Te6edf3abortTb4b4b4(Ta5d6ff"invalid type for setValue: " Tff7b72+ Te6edf3typeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72function Te6edf3___assert_failTb4b4b4(Te6edf3conditionTb4b4b4, Te6edf3filenameTb4b4b4, Te6edf3lineTb4b4b4, Te6edf3funcTb4b4b4) Tb4b4b4{
Te6edf3abortTb4b4b4(
Ta5d6ff"Assertion failed: " Tff7b72+
Te6edf3UTF8ToStringTb4b4b4(Te6edf3conditionTb4b4b4) Tff7b72+
Ta5d6ff", at: " Tff7b72+
Tb4b4b4[
Te6edf3filename Tff7b72? Te6edf3UTF8ToStringTb4b4b4(Te6edf3filenameTb4b4b4) Tff7b72: Ta5d6ff"unknown filename"Tb4b4b4,
Te6edf3lineTb4b4b4,
Te6edf3func Tff7b72? Te6edf3UTF8ToStringTb4b4b4(Te6edf3funcTb4b4b4) Tff7b72: Ta5d6ff"unknown function"Tb4b4b4,
Tb4b4b4]
Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3setErrNoTb4b4b4(Te6edf3valueTb4b4b4) Tb4b4b4{
Te6edf3HEAP32Tb4b4b4[Te6edf3___errno_locationTb4b4b4(Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3valueTb4b4b4;
Tff7b72return Te6edf3valueTb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3PATH Tff7b72= Tb4b4b4{
Te6edf3isAbsTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4) Tb4b4b4=> Te6edf3pathTb4b4b4.Te6edf3charAtTb4b4b4(T79c0ff0Tb4b4b4) Tff7b72=== Ta5d6ff"/"Tb4b4b4,
Te6edf3splitPathTff7b72: Tb4b4b4(Te6edf3filenameTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3splitPathRe Tff7b72= Ta5d6ff/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/Tb4b4b4;
Tff7b72return Te6edf3splitPathReTb4b4b4.Te6edf3execTb4b4b4(Te6edf3filenameTb4b4b4)Tb4b4b4.Te6edf3sliceTb4b4b4(T79c0ff1Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3normalizeArrayTff7b72: Tb4b4b4(Te6edf3partsTb4b4b4, Te6edf3allowAboveRootTb4b4b4) Tb4b4b4=> Tb4b4b4{
T8b949e// if the path tries to go above the root, `up` ends up > 0
Tff7b72var Te6edf3up Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= Te6edf3partsTb4b4b4.Te6edf3length Tff7b72- T79c0ff1Tb4b4b4; Te6edf3i Tff7b72>= T79c0ff0Tb4b4b4; Te6edf3iTff7b72--Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3last Tff7b72= Te6edf3partsTb4b4b4[Te6edf3iTb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3last Tff7b72=== Ta5d6ff"."Tb4b4b4) Tb4b4b4{
Te6edf3partsTb4b4b4.Te6edf3spliceTb4b4b4(Te6edf3iTb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3last Tff7b72=== Ta5d6ff".."Tb4b4b4) Tb4b4b4{
Te6edf3partsTb4b4b4.Te6edf3spliceTb4b4b4(Te6edf3iTb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4;
Te6edf3upTff7b72++Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3upTb4b4b4) Tb4b4b4{
Te6edf3partsTb4b4b4.Te6edf3spliceTb4b4b4(Te6edf3iTb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4;
Te6edf3upTff7b72--Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
T8b949e// if the path is allowed to go above the root, restore leading ..s
Tff7b72if Tb4b4b4(Te6edf3allowAboveRootTb4b4b4) Tb4b4b4{
Tff7b72for Tb4b4b4(Tb4b4b4; Te6edf3upTb4b4b4; Te6edf3upTff7b72--Tb4b4b4) Tb4b4b4{
Te6edf3partsTb4b4b4.Te6edf3unshiftTb4b4b4(Ta5d6ff".."Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Te6edf3partsTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3normalizeTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3isAbsolute Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3isAbsTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4,
Te6edf3trailingSlash Tff7b72= Te6edf3pathTb4b4b4.Te6edf3substrTb4b4b4(Tff7b72-T79c0ff1Tb4b4b4) Tff7b72=== Ta5d6ff"/"Tb4b4b4;
T8b949e// Normalize the path
Te6edf3path Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3normalizeArrayTb4b4b4(
Te6edf3pathTb4b4b4.Te6edf3splitTb4b4b4(Ta5d6ff"/"Tb4b4b4)Tb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3pTb4b4b4) Tb4b4b4=> Tff7b72!Tff7b72!Te6edf3pTb4b4b4)Tb4b4b4,
Tff7b72!Te6edf3isAbsolute
Tb4b4b4)Tb4b4b4.Te6edf3joinTb4b4b4(Ta5d6ff"/"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3path Tff7b72&& Tff7b72!Te6edf3isAbsoluteTb4b4b4) Tb4b4b4{
Te6edf3path Tff7b72= Ta5d6ff"."Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3path Tff7b72&& Te6edf3trailingSlashTb4b4b4) Tb4b4b4{
Te6edf3path Tff7b72+= Ta5d6ff"/"Tb4b4b4;
Tb4b4b4}
Tff7b72return Tb4b4b4(Te6edf3isAbsolute Tff7b72? Ta5d6ff"/" Tff7b72: Ta5d6ff""Tb4b4b4) Tff7b72+ Te6edf3pathTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3dirnameTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3result Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3splitPathTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4,
Te6edf3root Tff7b72= Te6edf3resultTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4,
Te6edf3dir Tff7b72= Te6edf3resultTb4b4b4[T79c0ff1Tb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3root Tff7b72&& Tff7b72!Te6edf3dirTb4b4b4) Tb4b4b4{
T8b949e// No dirname whatsoever
Tff7b72return Ta5d6ff"."Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3dirTb4b4b4) Tb4b4b4{
T8b949e// It has a dirname, strip trailing slash
Te6edf3dir Tff7b72= Te6edf3dirTb4b4b4.Te6edf3substrTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3dirTb4b4b4.Te6edf3length Tff7b72- T79c0ff1Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3root Tff7b72+ Te6edf3dirTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3basenameTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4) Tb4b4b4=> Tb4b4b4{
T8b949e// EMSCRIPTEN return '/'' for '/', not an empty string
Tff7b72if Tb4b4b4(Te6edf3path Tff7b72=== Ta5d6ff"/"Tb4b4b4) Tff7b72return Ta5d6ff"/"Tb4b4b4;
Te6edf3path Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3normalizeTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4;
Te6edf3path Tff7b72= Te6edf3pathTb4b4b4.Te6edf3replaceTb4b4b4(Ta5d6ff/\/$/Tb4b4b4, Ta5d6ff""Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3lastSlash Tff7b72= Te6edf3pathTb4b4b4.Te6edf3lastIndexOfTb4b4b4(Ta5d6ff"/"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3lastSlash Tff7b72=== Tff7b72-T79c0ff1Tb4b4b4) Tff7b72return Te6edf3pathTb4b4b4;
Tff7b72return Te6edf3pathTb4b4b4.Te6edf3substrTb4b4b4(Te6edf3lastSlash Tff7b72+ T79c0ff1Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3joinTff7b72: Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3paths Tff7b72= Tffa657ArrayTb4b4b4.Te6edf3prototypeTb4b4b4.Te6edf3sliceTb4b4b4.Te6edf3callTb4b4b4(Te6edf3argumentsTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3PATHTb4b4b4.Te6edf3normalizeTb4b4b4(Te6edf3pathsTb4b4b4.Te6edf3joinTb4b4b4(Ta5d6ff"/"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3join2Tff7b72: Tb4b4b4(Te6edf3lTb4b4b4, Te6edf3rTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Te6edf3PATHTb4b4b4.Te6edf3normalizeTb4b4b4(Te6edf3l Tff7b72+ Ta5d6ff"/" Tff7b72+ Te6edf3rTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72function Te6edf3getRandomDeviceTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3crypto Tff7b72== Ta5d6ff"object" Tff7b72&& Tff7b72typeof Te6edf3cryptoTb4b4b4[Ta5d6ff"getRandomValues"Tb4b4b4] Tff7b72== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
T8b949e// for modern web browsers
Tff7b72var Te6edf3randomBuffer Tff7b72= Tff7b72new Tffa657Uint8ArrayTb4b4b4(T79c0ff1Tb4b4b4)Tb4b4b4;
Tff7b72return Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3cryptoTb4b4b4.Te6edf3getRandomValuesTb4b4b4(Te6edf3randomBufferTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3randomBufferTb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3ENVIRONMENT_IS_NODETb4b4b4) Tb4b4b4{
T8b949e// for nodejs with or without crypto support included
Tff7b72try Tb4b4b4{
Tff7b72var Te6edf3crypto_module Tff7b72= Te6edf3requireTb4b4b4(Ta5d6ff"crypto"Tb4b4b4)Tb4b4b4;
T8b949e// nodejs has crypto support
Tff7b72return Tb4b4b4(Tb4b4b4) Tb4b4b4=> Te6edf3crypto_moduleTb4b4b4[Ta5d6ff"randomBytes"Tb4b4b4]Tb4b4b4(T79c0ff1Tb4b4b4)Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
T8b949e// nodejs doesn't have crypto support
Tb4b4b4}
Tb4b4b4}
T8b949e// we couldn't find a proper implementation, as Math.random() is not suitable for /dev/random, see emscripten-core/emscripten/pull/7096
Tff7b72return Tb4b4b4(Tb4b4b4) Tb4b4b4=> Te6edf3abortTb4b4b4(Ta5d6ff"randomDevice"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3PATH_FS Tff7b72= Tb4b4b4{
Te6edf3resolveTff7b72: Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3resolvedPath Tff7b72= Ta5d6ff""Tb4b4b4,
Te6edf3resolvedAbsolute Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= Te6edf3argumentsTb4b4b4.Te6edf3length Tff7b72- T79c0ff1Tb4b4b4; Te6edf3i Tff7b72>= Tff7b72-T79c0ff1 Tff7b72&& Tff7b72!Te6edf3resolvedAbsoluteTb4b4b4; Te6edf3iTff7b72--Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3path Tff7b72= Te6edf3i Tff7b72>= T79c0ff0 Tff7b72? Te6edf3argumentsTb4b4b4[Te6edf3iTb4b4b4] Tff7b72: Te6edf3FSTb4b4b4.Te6edf3cwdTb4b4b4(Tb4b4b4)Tb4b4b4;
T8b949e// Skip empty and invalid entries
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3path Tff7b72!= Ta5d6ff"string"Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149TypeErrorTb4b4b4(Ta5d6ff"Arguments to path.resolve must be strings"Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Tff7b72!Te6edf3pathTb4b4b4) Tb4b4b4{
Tff7b72return Ta5d6ff""Tb4b4b4; T8b949e// an invalid portion invalidates the whole thing
Tb4b4b4}
Te6edf3resolvedPath Tff7b72= Te6edf3path Tff7b72+ Ta5d6ff"/" Tff7b72+ Te6edf3resolvedPathTb4b4b4;
Te6edf3resolvedAbsolute Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3isAbsTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// At this point the path should be resolved to a full absolute path, but
T8b949e// handle relative paths to be safe (might happen when process.cwd() fails)
Te6edf3resolvedPath Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3normalizeArrayTb4b4b4(
Te6edf3resolvedPathTb4b4b4.Te6edf3splitTb4b4b4(Ta5d6ff"/"Tb4b4b4)Tb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3pTb4b4b4) Tb4b4b4=> Tff7b72!Tff7b72!Te6edf3pTb4b4b4)Tb4b4b4,
Tff7b72!Te6edf3resolvedAbsolute
Tb4b4b4)Tb4b4b4.Te6edf3joinTb4b4b4(Ta5d6ff"/"Tb4b4b4)Tb4b4b4;
Tff7b72return Tb4b4b4(Te6edf3resolvedAbsolute Tff7b72? Ta5d6ff"/" Tff7b72: Ta5d6ff""Tb4b4b4) Tff7b72+ Te6edf3resolvedPath Tff7b72|| Ta5d6ff"."Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3relativeTff7b72: Tb4b4b4(Tff7b72fromTb4b4b4, Te6edf3toTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72from Tff7b72= Te6edf3PATH_FSTb4b4b4.Te6edf3resolveTb4b4b4(Tff7b72fromTb4b4b4)Tb4b4b4.Te6edf3substrTb4b4b4(T79c0ff1Tb4b4b4)Tb4b4b4;
Te6edf3to Tff7b72= Te6edf3PATH_FSTb4b4b4.Te6edf3resolveTb4b4b4(Te6edf3toTb4b4b4)Tb4b4b4.Te6edf3substrTb4b4b4(T79c0ff1Tb4b4b4)Tb4b4b4;
Tff7b72function Te6edf3trimTb4b4b4(Te6edf3arrTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3start Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72for Tb4b4b4(Tb4b4b4; Te6edf3start Tff7b72< Te6edf3arrTb4b4b4.Te6edf3lengthTb4b4b4; Te6edf3startTff7b72++Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3arrTb4b4b4[Te6edf3startTb4b4b4] Tff7b72!== Ta5d6ff""Tb4b4b4) Tff7b72breakTb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3end Tff7b72= Te6edf3arrTb4b4b4.Te6edf3length Tff7b72- T79c0ff1Tb4b4b4;
Tff7b72for Tb4b4b4(Tb4b4b4; Te6edf3end Tff7b72>= T79c0ff0Tb4b4b4; Te6edf3endTff7b72--Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3arrTb4b4b4[Te6edf3endTb4b4b4] Tff7b72!== Ta5d6ff""Tb4b4b4) Tff7b72breakTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3start Tff7b72> Te6edf3endTb4b4b4) Tff7b72return Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72return Te6edf3arrTb4b4b4.Te6edf3sliceTb4b4b4(Te6edf3startTb4b4b4, Te6edf3end Tff7b72- Te6edf3start Tff7b72+ T79c0ff1Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3fromParts Tff7b72= Te6edf3trimTb4b4b4(Tff7b72fromTb4b4b4.Te6edf3splitTb4b4b4(Ta5d6ff"/"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3toParts Tff7b72= Te6edf3trimTb4b4b4(Te6edf3toTb4b4b4.Te6edf3splitTb4b4b4(Ta5d6ff"/"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3length Tff7b72= Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Te6edf3fromPartsTb4b4b4.Te6edf3lengthTb4b4b4, Te6edf3toPartsTb4b4b4.Te6edf3lengthTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3samePartsLength Tff7b72= Te6edf3lengthTb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3lengthTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3fromPartsTb4b4b4[Te6edf3iTb4b4b4] Tff7b72!== Te6edf3toPartsTb4b4b4[Te6edf3iTb4b4b4]Tb4b4b4) Tb4b4b4{
Te6edf3samePartsLength Tff7b72= Te6edf3iTb4b4b4;
Tff7b72breakTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72var Te6edf3outputParts Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= Te6edf3samePartsLengthTb4b4b4; Te6edf3i Tff7b72< Te6edf3fromPartsTb4b4b4.Te6edf3lengthTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Te6edf3outputPartsTb4b4b4.Te6edf3pushTb4b4b4(Ta5d6ff".."Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3outputParts Tff7b72= Te6edf3outputPartsTb4b4b4.Te6edf3concatTb4b4b4(Te6edf3toPartsTb4b4b4.Te6edf3sliceTb4b4b4(Te6edf3samePartsLengthTb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3outputPartsTb4b4b4.Te6edf3joinTb4b4b4(Ta5d6ff"/"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
T8b949e/** @type {function(string, boolean=, number=)} */
Tff7b72function Te6edf3intArrayFromStringTb4b4b4(Te6edf3stringyTb4b4b4, Te6edf3dontAddNullTb4b4b4, Te6edf3lengthTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3len Tff7b72= Te6edf3length Tff7b72> T79c0ff0 Tff7b72? Te6edf3length Tff7b72: Te6edf3lengthBytesUTF8Tb4b4b4(Te6edf3stringyTb4b4b4) Tff7b72+ T79c0ff1Tb4b4b4;
Tff7b72var Te6edf3u8array Tff7b72= Tff7b72new Tffa657ArrayTb4b4b4(Te6edf3lenTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3numBytesWritten Tff7b72= Te6edf3stringToUTF8ArrayTb4b4b4(Te6edf3stringyTb4b4b4, Te6edf3u8arrayTb4b4b4, T79c0ff0Tb4b4b4, Te6edf3u8arrayTb4b4b4.Te6edf3lengthTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3dontAddNullTb4b4b4) Te6edf3u8arrayTb4b4b4.Te6edf3length Tff7b72= Te6edf3numBytesWrittenTb4b4b4;
Tff7b72return Te6edf3u8arrayTb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3TTY Tff7b72= Tb4b4b4{
Te6edf3ttysTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3initTff7b72: Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// https://github.com/emscripten-core/emscripten/pull/1555
T8b949e// if (ENVIRONMENT_IS_NODE) {
T8b949e// // currently, FS.init does not distinguish if process.stdin is a file or TTY
T8b949e// // device, it always assumes it's a TTY device. because of this, we're forcing
T8b949e// // process.stdin to UTF8 encoding to at least make stdin reading compatible
T8b949e// // with text files until FS.init can be refactored.
T8b949e// process['stdin']['setEncoding']('utf8');
T8b949e// }
Tb4b4b4}Tb4b4b4,
Te6edf3shutdownTff7b72: Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// https://github.com/emscripten-core/emscripten/pull/1555
T8b949e// if (ENVIRONMENT_IS_NODE) {
T8b949e// // inolen: any idea as to why node -e 'process.stdin.read()' wouldn't exit immediately (with process.stdin being a tty)?
T8b949e// // isaacs: because now it's reading from the stream, you've expressed interest in it, so that read() kicks off a _read() which creates a ReadReq operation
T8b949e// // inolen: I thought read() in that case was a synchronous operation that just grabbed some amount of buffered data if it exists?
T8b949e// // isaacs: it is. but it also triggers a _read() call, which calls readStart() on the handle
T8b949e// // isaacs: do process.stdin.pause() and i'd think it'd probably close the pending call
T8b949e// process['stdin']['pause']();
T8b949e// }
Tb4b4b4}Tb4b4b4,
Te6edf3registerTff7b72: Tff7b72function Tb4b4b4(Te6edf3devTb4b4b4, Te6edf3opsTb4b4b4) Tb4b4b4{
Te6edf3TTYTb4b4b4.Te6edf3ttysTb4b4b4[Te6edf3devTb4b4b4] Tff7b72= Tb4b4b4{ Te6edf3inputTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4, Te6edf3outputTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4, Te6edf3opsTff7b72: Te6edf3ops Tb4b4b4}Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3registerDeviceTb4b4b4(Te6edf3devTb4b4b4, Te6edf3TTYTb4b4b4.Te6edf3stream_opsTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3stream_opsTff7b72: Tb4b4b4{
Te6edf3openTff7b72: Tff7b72function Tb4b4b4(Te6edf3streamTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3tty Tff7b72= Te6edf3TTYTb4b4b4.Te6edf3ttysTb4b4b4[Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3rdevTb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3ttyTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff43Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3streamTb4b4b4.Te6edf3tty Tff7b72= Te6edf3ttyTb4b4b4;
Te6edf3streamTb4b4b4.Te6edf3seekable Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3closeTff7b72: Tff7b72function Tb4b4b4(Te6edf3streamTb4b4b4) Tb4b4b4{
T8b949e// flush any pending line data
Te6edf3streamTb4b4b4.Te6edf3ttyTb4b4b4.Te6edf3opsTb4b4b4.Te6edf3fsyncTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3ttyTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3fsyncTff7b72: Tff7b72function Tb4b4b4(Te6edf3streamTb4b4b4) Tb4b4b4{
Te6edf3streamTb4b4b4.Te6edf3ttyTb4b4b4.Te6edf3opsTb4b4b4.Te6edf3fsyncTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3ttyTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3readTff7b72: Tff7b72function Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3pos T8b949e/* ignored */Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4.Te6edf3tty Tff7b72|| Tff7b72!Te6edf3streamTb4b4b4.Te6edf3ttyTb4b4b4.Te6edf3opsTb4b4b4.Te6edf3get_charTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff60Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3bytesRead Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3lengthTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3resultTb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3result Tff7b72= Te6edf3streamTb4b4b4.Te6edf3ttyTb4b4b4.Te6edf3opsTb4b4b4.Te6edf3get_charTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3ttyTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff29Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3result Tff7b72=== Tff7b72undefined Tff7b72&& Te6edf3bytesRead Tff7b72=== T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff6Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3result Tff7b72=== Tff7b72null Tff7b72|| Te6edf3result Tff7b72=== Tff7b72undefinedTb4b4b4) Tff7b72breakTb4b4b4;
Te6edf3bytesReadTff7b72++Tb4b4b4;
Te6edf3bufferTb4b4b4[Te6edf3offset Tff7b72+ Te6edf3iTb4b4b4] Tff7b72= Te6edf3resultTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3bytesReadTb4b4b4) Tb4b4b4{
Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3timestamp Tff7b72= Tffa657DateTb4b4b4.Te6edf3nowTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3bytesReadTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3writeTff7b72: Tff7b72function Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3posTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4.Te6edf3tty Tff7b72|| Tff7b72!Te6edf3streamTb4b4b4.Te6edf3ttyTb4b4b4.Te6edf3opsTb4b4b4.Te6edf3put_charTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff60Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4{
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3lengthTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Te6edf3streamTb4b4b4.Te6edf3ttyTb4b4b4.Te6edf3opsTb4b4b4.Te6edf3put_charTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3ttyTb4b4b4, Te6edf3bufferTb4b4b4[Te6edf3offset Tff7b72+ Te6edf3iTb4b4b4]Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff29Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3lengthTb4b4b4) Tb4b4b4{
Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3timestamp Tff7b72= Tffa657DateTb4b4b4.Te6edf3nowTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3iTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3default_tty_opsTff7b72: Tb4b4b4{
Te6edf3get_charTff7b72: Tff7b72function Tb4b4b4(Te6edf3ttyTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3ttyTb4b4b4.Te6edf3inputTb4b4b4.Te6edf3lengthTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3result Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3ENVIRONMENT_IS_NODETb4b4b4) Tb4b4b4{
T8b949e// we will read data by chunks of BUFSIZE
Tff7b72var Te6edf3BUFSIZE Tff7b72= T79c0ff256Tb4b4b4;
Tff7b72var Te6edf3buf Tff7b72= Te6edf3BufferTb4b4b4.Te6edf3allocTb4b4b4(Te6edf3BUFSIZETb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3bytesRead Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3bytesRead Tff7b72= Te6edf3fsTb4b4b4.Te6edf3readSyncTb4b4b4(Te6edf3processTb4b4b4.Te6edf3stdinTb4b4b4.Te6edf3fdTb4b4b4, Te6edf3bufTb4b4b4, T79c0ff0Tb4b4b4, Te6edf3BUFSIZETb4b4b4, Tff7b72-T79c0ff1Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
T8b949e// Cross-platform differences: on Windows, reading EOF throws an exception, but on other OSes,
T8b949e// reading EOF returns 0. Uniformize behavior by treating the EOF exception to return 0.
Tff7b72if Tb4b4b4(Te6edf3eTb4b4b4.Te6edf3toStringTb4b4b4(Tb4b4b4)Tb4b4b4.Te6edf3includesTb4b4b4(Ta5d6ff"EOF"Tb4b4b4)Tb4b4b4) Te6edf3bytesRead Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72else Tff7b72throw Te6edf3eTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3bytesRead Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3result Tff7b72= Te6edf3bufTb4b4b4.Te6edf3sliceTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3bytesReadTb4b4b4)Tb4b4b4.Te6edf3toStringTb4b4b4(Ta5d6ff"utf-8"Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3result Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Tff7b72typeof Tffa657window Tff7b72!= Ta5d6ff"undefined" Tff7b72&& Tff7b72typeof Tffa657windowTb4b4b4.Te6edf3prompt Tff7b72== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
T8b949e// Browser.
Te6edf3result Tff7b72= Tffa657windowTb4b4b4.Te6edf3promptTb4b4b4(Ta5d6ff"Input: "Tb4b4b4)Tb4b4b4; T8b949e// returns null on cancel
Tff7b72if Tb4b4b4(Te6edf3result Tff7b72!== Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3result Tff7b72+= Ta5d6ff"\n"Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3readline Tff7b72== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
T8b949e// Command line.
Te6edf3result Tff7b72= Te6edf3readlineTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3result Tff7b72!== Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3result Tff7b72+= Ta5d6ff"\n"Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3resultTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Te6edf3ttyTb4b4b4.Te6edf3input Tff7b72= Te6edf3intArrayFromStringTb4b4b4(Te6edf3resultTb4b4b4, Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3ttyTb4b4b4.Te6edf3inputTb4b4b4.Te6edf3shiftTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3put_charTff7b72: Tff7b72function Tb4b4b4(Te6edf3ttyTb4b4b4, Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3val Tff7b72=== Tff7b72null Tff7b72|| Te6edf3val Tff7b72=== T79c0ff10Tb4b4b4) Tb4b4b4{
Te6edf3outTb4b4b4(Te6edf3UTF8ArrayToStringTb4b4b4(Te6edf3ttyTb4b4b4.Te6edf3outputTb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3ttyTb4b4b4.Te6edf3output Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3val Tff7b72!= T79c0ff0Tb4b4b4) Te6edf3ttyTb4b4b4.Te6edf3outputTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3valTb4b4b4)Tb4b4b4; T8b949e// val == 0 would cut text output off in the middle.
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3fsyncTff7b72: Tff7b72function Tb4b4b4(Te6edf3ttyTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3ttyTb4b4b4.Te6edf3output Tff7b72&& Te6edf3ttyTb4b4b4.Te6edf3outputTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3outTb4b4b4(Te6edf3UTF8ArrayToStringTb4b4b4(Te6edf3ttyTb4b4b4.Te6edf3outputTb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3ttyTb4b4b4.Te6edf3output Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3default_tty1_opsTff7b72: Tb4b4b4{
Te6edf3put_charTff7b72: Tff7b72function Tb4b4b4(Te6edf3ttyTb4b4b4, Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3val Tff7b72=== Tff7b72null Tff7b72|| Te6edf3val Tff7b72=== T79c0ff10Tb4b4b4) Tb4b4b4{
Te6edf3errTb4b4b4(Te6edf3UTF8ArrayToStringTb4b4b4(Te6edf3ttyTb4b4b4.Te6edf3outputTb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3ttyTb4b4b4.Te6edf3output Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3val Tff7b72!= T79c0ff0Tb4b4b4) Te6edf3ttyTb4b4b4.Te6edf3outputTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3valTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3fsyncTff7b72: Tff7b72function Tb4b4b4(Te6edf3ttyTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3ttyTb4b4b4.Te6edf3output Tff7b72&& Te6edf3ttyTb4b4b4.Te6edf3outputTb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3errTb4b4b4(Te6edf3UTF8ArrayToStringTb4b4b4(Te6edf3ttyTb4b4b4.Te6edf3outputTb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3ttyTb4b4b4.Te6edf3output Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72function Te6edf3zeroMemoryTb4b4b4(Te6edf3addressTb4b4b4, Te6edf3sizeTb4b4b4) Tb4b4b4{
Te6edf3HEAPU8Tb4b4b4.Te6edf3fillTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3addressTb4b4b4, Te6edf3address Tff7b72+ Te6edf3sizeTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3addressTb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3alignMemoryTb4b4b4(Te6edf3sizeTb4b4b4, Te6edf3alignmentTb4b4b4) Tb4b4b4{
Tff7b72return Tffa657MathTb4b4b4.Te6edf3ceilTb4b4b4(Te6edf3size Tff7b72/ Te6edf3alignmentTb4b4b4) Tff7b72* Te6edf3alignmentTb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3mmapAllocTb4b4b4(Te6edf3sizeTb4b4b4) Tb4b4b4{
Te6edf3abortTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3MEMFS Tff7b72= Tb4b4b4{
Te6edf3ops_tableTff7b72: Tff7b72nullTb4b4b4,
Te6edf3mountTff7b72: Tff7b72function Tb4b4b4(Te6edf3mountTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3MEMFSTb4b4b4.Te6edf3createNodeTb4b4b4(Tff7b72nullTb4b4b4, Ta5d6ff"/"Tb4b4b4, T79c0ff16384 Tff7b72| T79c0ff511 T8b949e/* 0777 */Tb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3createNodeTff7b72: Tff7b72function Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3modeTb4b4b4, Te6edf3devTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isBlkdevTb4b4b4(Te6edf3modeTb4b4b4) Tff7b72|| Te6edf3FSTb4b4b4.Te6edf3isFIFOTb4b4b4(Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
T8b949e// no supported
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff63Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3MEMFSTb4b4b4.Te6edf3ops_tableTb4b4b4) Tb4b4b4{
Te6edf3MEMFSTb4b4b4.Te6edf3ops_table Tff7b72= Tb4b4b4{
Te6edf3dirTff7b72: Tb4b4b4{
Te6edf3nodeTff7b72: Tb4b4b4{
Te6edf3getattrTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3getattrTb4b4b4,
Te6edf3setattrTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3setattrTb4b4b4,
Te6edf3lookupTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3lookupTb4b4b4,
Te6edf3mknodTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3mknodTb4b4b4,
Te6edf3renameTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3renameTb4b4b4,
Te6edf3unlinkTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3unlinkTb4b4b4,
Te6edf3rmdirTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3rmdirTb4b4b4,
Te6edf3readdirTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3readdirTb4b4b4,
Te6edf3symlinkTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3symlinkTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3streamTff7b72: Tb4b4b4{
Te6edf3llseekTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3llseekTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3fileTff7b72: Tb4b4b4{
Te6edf3nodeTff7b72: Tb4b4b4{
Te6edf3getattrTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3getattrTb4b4b4,
Te6edf3setattrTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3setattrTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3streamTff7b72: Tb4b4b4{
Te6edf3llseekTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3llseekTb4b4b4,
Te6edf3readTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3readTb4b4b4,
Te6edf3writeTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3writeTb4b4b4,
Te6edf3allocateTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3allocateTb4b4b4,
Te6edf3mmapTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3mmapTb4b4b4,
Te6edf3msyncTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3msyncTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3linkTff7b72: Tb4b4b4{
Te6edf3nodeTff7b72: Tb4b4b4{
Te6edf3getattrTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3getattrTb4b4b4,
Te6edf3setattrTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3setattrTb4b4b4,
Te6edf3readlinkTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3readlinkTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3streamTff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3chrdevTff7b72: Tb4b4b4{
Te6edf3nodeTff7b72: Tb4b4b4{
Te6edf3getattrTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3getattrTb4b4b4,
Te6edf3setattrTff7b72: Te6edf3MEMFSTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3setattrTb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3streamTff7b72: Te6edf3FSTb4b4b4.Te6edf3chrdev_stream_opsTb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3node Tff7b72= Te6edf3FSTb4b4b4.Te6edf3createNodeTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3modeTb4b4b4, Te6edf3devTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isDirTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3node_ops Tff7b72= Te6edf3MEMFSTb4b4b4.Te6edf3ops_tableTb4b4b4.Te6edf3dirTb4b4b4.Te6edf3nodeTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3stream_ops Tff7b72= Te6edf3MEMFSTb4b4b4.Te6edf3ops_tableTb4b4b4.Te6edf3dirTb4b4b4.Te6edf3streamTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3contents Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isFileTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3node_ops Tff7b72= Te6edf3MEMFSTb4b4b4.Te6edf3ops_tableTb4b4b4.Te6edf3fileTb4b4b4.Te6edf3nodeTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3stream_ops Tff7b72= Te6edf3MEMFSTb4b4b4.Te6edf3ops_tableTb4b4b4.Te6edf3fileTb4b4b4.Te6edf3streamTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3usedBytes Tff7b72= T79c0ff0Tb4b4b4; T8b949e// The actual number of bytes used in the typed array, as opposed to contents.length which gives the whole capacity.
T8b949e// When the byte data of the file is populated, this will point to either a typed array, or a normal JS array. Typed arrays are preferred
T8b949e// for performance, and used by default. However, typed arrays are not resizable like normal JS arrays are, so there is a small disk size
T8b949e// penalty involved for appending file writes that continuously grow a file similar to std::vector capacity vs used -scheme.
Te6edf3nodeTb4b4b4.Te6edf3contents Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isLinkTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3node_ops Tff7b72= Te6edf3MEMFSTb4b4b4.Te6edf3ops_tableTb4b4b4.Te6edf3linkTb4b4b4.Te6edf3nodeTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3stream_ops Tff7b72= Te6edf3MEMFSTb4b4b4.Te6edf3ops_tableTb4b4b4.Te6edf3linkTb4b4b4.Te6edf3streamTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isChrdevTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3node_ops Tff7b72= Te6edf3MEMFSTb4b4b4.Te6edf3ops_tableTb4b4b4.Te6edf3chrdevTb4b4b4.Te6edf3nodeTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3stream_ops Tff7b72= Te6edf3MEMFSTb4b4b4.Te6edf3ops_tableTb4b4b4.Te6edf3chrdevTb4b4b4.Te6edf3streamTb4b4b4;
Tb4b4b4}
Te6edf3nodeTb4b4b4.Te6edf3timestamp Tff7b72= Tffa657DateTb4b4b4.Te6edf3nowTb4b4b4(Tb4b4b4)Tb4b4b4;
T8b949e// add the new node to the parent
Tff7b72if Tb4b4b4(Te6edf3parentTb4b4b4) Tb4b4b4{
Te6edf3parentTb4b4b4.Te6edf3contentsTb4b4b4[Te6edf3nameTb4b4b4] Tff7b72= Te6edf3nodeTb4b4b4;
Te6edf3parentTb4b4b4.Te6edf3timestamp Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3timestampTb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3nodeTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3getFileDataAsTypedArrayTff7b72: Tff7b72function Tb4b4b4(Te6edf3nodeTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4) Tff7b72return Tff7b72new Tffa657Uint8ArrayTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4.Te6edf3subarrayTb4b4b4) Tff7b72return Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4.Te6edf3subarrayTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3nodeTb4b4b4.Te6edf3usedBytesTb4b4b4)Tb4b4b4; T8b949e// Make sure to not return excess unused bytes.
Tff7b72return Tff7b72new Tffa657Uint8ArrayTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3expandFileStorageTff7b72: Tff7b72function Tb4b4b4(Te6edf3nodeTb4b4b4, Te6edf3newCapacityTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3prevCapacity Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3contents Tff7b72? Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4.Te6edf3length Tff7b72: T79c0ff0Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3prevCapacity Tff7b72>= Te6edf3newCapacityTb4b4b4) Tff7b72returnTb4b4b4; T8b949e// No need to expand, the storage was already large enough.
T8b949e// Don't expand strictly to the given requested limit if it's only a very small increase, but instead geometrically grow capacity.
T8b949e// For small filesizes (<1MB), perform size*2 geometric increase, but for large sizes, do a much more conservative size*1.125 increase to
T8b949e// avoid overshooting the allocation cap by a very large margin.
Tff7b72var Te6edf3CAPACITY_DOUBLING_MAX Tff7b72= T79c0ff1024 Tff7b72* T79c0ff1024Tb4b4b4;
Te6edf3newCapacity Tff7b72= Tffa657MathTb4b4b4.Te6edf3maxTb4b4b4(
Te6edf3newCapacityTb4b4b4,
Tb4b4b4(Te6edf3prevCapacity Tff7b72* Tb4b4b4(Te6edf3prevCapacity Tff7b72< Te6edf3CAPACITY_DOUBLING_MAX Tff7b72? T79c0ff2.0 Tff7b72: T79c0ff1.125Tb4b4b4)Tb4b4b4) Tff7b72>>> T79c0ff0
Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3prevCapacity Tff7b72!= T79c0ff0Tb4b4b4) Te6edf3newCapacity Tff7b72= Tffa657MathTb4b4b4.Te6edf3maxTb4b4b4(Te6edf3newCapacityTb4b4b4, T79c0ff256Tb4b4b4)Tb4b4b4; T8b949e// At minimum allocate 256b for each file when expanding.
Tff7b72var Te6edf3oldContents Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3contents Tff7b72= Tff7b72new Tffa657Uint8ArrayTb4b4b4(Te6edf3newCapacityTb4b4b4)Tb4b4b4; T8b949e// Allocate new storage.
Tff7b72if Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3usedBytes Tff7b72> T79c0ff0Tb4b4b4) Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4.Te6edf3setTb4b4b4(Te6edf3oldContentsTb4b4b4.Te6edf3subarrayTb4b4b4(T79c0ff0Tb4b4b4, Te6edf3nodeTb4b4b4.Te6edf3usedBytesTb4b4b4)Tb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4; T8b949e// Copy old data over to the new storage.
Tb4b4b4}Tb4b4b4,
Te6edf3resizeFileStorageTff7b72: Tff7b72function Tb4b4b4(Te6edf3nodeTb4b4b4, Te6edf3newSizeTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3usedBytes Tff7b72== Te6edf3newSizeTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3newSize Tff7b72== T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3contents Tff7b72= Tff7b72nullTb4b4b4; T8b949e// Fully decommit when requesting a resize to zero.
Te6edf3nodeTb4b4b4.Te6edf3usedBytes Tff7b72= T79c0ff0Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72var Te6edf3oldContents Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3contents Tff7b72= Tff7b72new Tffa657Uint8ArrayTb4b4b4(Te6edf3newSizeTb4b4b4)Tb4b4b4; T8b949e// Allocate new storage.
Tff7b72if Tb4b4b4(Te6edf3oldContentsTb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4.Te6edf3setTb4b4b4(Te6edf3oldContentsTb4b4b4.Te6edf3subarrayTb4b4b4(T79c0ff0Tb4b4b4, Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Te6edf3newSizeTb4b4b4, Te6edf3nodeTb4b4b4.Te6edf3usedBytesTb4b4b4)Tb4b4b4)Tb4b4b4)Tb4b4b4; T8b949e// Copy old data over to the new storage.
Tb4b4b4}
Te6edf3nodeTb4b4b4.Te6edf3usedBytes Tff7b72= Te6edf3newSizeTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3node_opsTff7b72: Tb4b4b4{
Te6edf3getattrTff7b72: Tff7b72function Tb4b4b4(Te6edf3nodeTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3attr Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
T8b949e// device numbers reuse inode numbers.
Te6edf3attrTb4b4b4.Te6edf3dev Tff7b72= Te6edf3FSTb4b4b4.Te6edf3isChrdevTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4) Tff7b72? Te6edf3nodeTb4b4b4.Te6edf3id Tff7b72: T79c0ff1Tb4b4b4;
Te6edf3attrTb4b4b4.Te6edf3ino Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3idTb4b4b4;
Te6edf3attrTb4b4b4.Te6edf3mode Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4;
Te6edf3attrTb4b4b4.Te6edf3nlink Tff7b72= T79c0ff1Tb4b4b4;
Te6edf3attrTb4b4b4.Te6edf3uid Tff7b72= T79c0ff0Tb4b4b4;
Te6edf3attrTb4b4b4.Te6edf3gid Tff7b72= T79c0ff0Tb4b4b4;
Te6edf3attrTb4b4b4.Te6edf3rdev Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3rdevTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isDirTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3attrTb4b4b4.Te6edf3size Tff7b72= T79c0ff4096Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isFileTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3attrTb4b4b4.Te6edf3size Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3usedBytesTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isLinkTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3attrTb4b4b4.Te6edf3size Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3linkTb4b4b4.Te6edf3lengthTb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3attrTb4b4b4.Te6edf3size Tff7b72= T79c0ff0Tb4b4b4;
Tb4b4b4}
Te6edf3attrTb4b4b4.Te6edf3atime Tff7b72= Tff7b72new Tffa657DateTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3timestampTb4b4b4)Tb4b4b4;
Te6edf3attrTb4b4b4.Te6edf3mtime Tff7b72= Tff7b72new Tffa657DateTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3timestampTb4b4b4)Tb4b4b4;
Te6edf3attrTb4b4b4.Te6edf3ctime Tff7b72= Tff7b72new Tffa657DateTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3timestampTb4b4b4)Tb4b4b4;
T8b949e// NOTE: In our implementation, st_blocks = Math.ceil(st_size/st_blksize),
T8b949e// but this is not required by the standard.
Te6edf3attrTb4b4b4.Te6edf3blksize Tff7b72= T79c0ff4096Tb4b4b4;
Te6edf3attrTb4b4b4.Te6edf3blocks Tff7b72= Tffa657MathTb4b4b4.Te6edf3ceilTb4b4b4(Te6edf3attrTb4b4b4.Te6edf3size Tff7b72/ Te6edf3attrTb4b4b4.Te6edf3blksizeTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3attrTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3setattrTff7b72: Tff7b72function Tb4b4b4(Te6edf3nodeTb4b4b4, Te6edf3attrTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3attrTb4b4b4.Te6edf3mode Tff7b72!== Tff7b72undefinedTb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3mode Tff7b72= Te6edf3attrTb4b4b4.Te6edf3modeTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3attrTb4b4b4.Te6edf3timestamp Tff7b72!== Tff7b72undefinedTb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3timestamp Tff7b72= Te6edf3attrTb4b4b4.Te6edf3timestampTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3attrTb4b4b4.Te6edf3size Tff7b72!== Tff7b72undefinedTb4b4b4) Tb4b4b4{
Te6edf3MEMFSTb4b4b4.Te6edf3resizeFileStorageTb4b4b4(Te6edf3nodeTb4b4b4, Te6edf3attrTb4b4b4.Te6edf3sizeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3lookupTff7b72: Tff7b72function Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4) Tb4b4b4{
Tff7b72throw Te6edf3FSTb4b4b4.Te6edf3genericErrorsTb4b4b4[T79c0ff44Tb4b4b4]Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3mknodTff7b72: Tff7b72function Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3modeTb4b4b4, Te6edf3devTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3MEMFSTb4b4b4.Te6edf3createNodeTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3modeTb4b4b4, Te6edf3devTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3renameTff7b72: Tff7b72function Tb4b4b4(Te6edf3old_nodeTb4b4b4, Te6edf3new_dirTb4b4b4, Te6edf3new_nameTb4b4b4) Tb4b4b4{
T8b949e// if we're overwriting a directory at new_name, make sure it's empty.
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isDirTb4b4b4(Te6edf3old_nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3new_nodeTb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3new_node Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupNodeTb4b4b4(Te6edf3new_dirTb4b4b4, Te6edf3new_nameTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3new_nodeTb4b4b4) Tb4b4b4{
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72in Te6edf3new_nodeTb4b4b4.Te6edf3contentsTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff55Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
T8b949e// do the internal rewiring
Tff7b72delete Te6edf3old_nodeTb4b4b4.Te6edf3parentTb4b4b4.Te6edf3contentsTb4b4b4[Te6edf3old_nodeTb4b4b4.Te6edf3nameTb4b4b4]Tb4b4b4;
Te6edf3old_nodeTb4b4b4.Te6edf3parentTb4b4b4.Te6edf3timestamp Tff7b72= Tffa657DateTb4b4b4.Te6edf3nowTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3old_nodeTb4b4b4.Te6edf3name Tff7b72= Te6edf3new_nameTb4b4b4;
Te6edf3new_dirTb4b4b4.Te6edf3contentsTb4b4b4[Te6edf3new_nameTb4b4b4] Tff7b72= Te6edf3old_nodeTb4b4b4;
Te6edf3new_dirTb4b4b4.Te6edf3timestamp Tff7b72= Te6edf3old_nodeTb4b4b4.Te6edf3parentTb4b4b4.Te6edf3timestampTb4b4b4;
Te6edf3old_nodeTb4b4b4.Te6edf3parent Tff7b72= Te6edf3new_dirTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3unlinkTff7b72: Tff7b72function Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4) Tb4b4b4{
Tff7b72delete Te6edf3parentTb4b4b4.Te6edf3contentsTb4b4b4[Te6edf3nameTb4b4b4]Tb4b4b4;
Te6edf3parentTb4b4b4.Te6edf3timestamp Tff7b72= Tffa657DateTb4b4b4.Te6edf3nowTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3rmdirTff7b72: Tff7b72function Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3node Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupNodeTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4)Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72in Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff55Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72delete Te6edf3parentTb4b4b4.Te6edf3contentsTb4b4b4[Te6edf3nameTb4b4b4]Tb4b4b4;
Te6edf3parentTb4b4b4.Te6edf3timestamp Tff7b72= Tffa657DateTb4b4b4.Te6edf3nowTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3readdirTff7b72: Tff7b72function Tb4b4b4(Te6edf3nodeTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3entries Tff7b72= Tb4b4b4[Ta5d6ff"."Tb4b4b4, Ta5d6ff".."Tb4b4b4]Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3key Tff7b72in Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4.Te6edf3hasOwnPropertyTb4b4b4(Te6edf3keyTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Te6edf3entriesTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3keyTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3entriesTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3symlinkTff7b72: Tff7b72function Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3newnameTb4b4b4, Te6edf3oldpathTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3node Tff7b72= Te6edf3MEMFSTb4b4b4.Te6edf3createNodeTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3newnameTb4b4b4, T79c0ff511 T8b949e/* 0777 */ Tff7b72| T79c0ff40960Tb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3link Tff7b72= Te6edf3oldpathTb4b4b4;
Tff7b72return Te6edf3nodeTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3readlinkTff7b72: Tff7b72function Tb4b4b4(Te6edf3nodeTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3FSTb4b4b4.Te6edf3isLinkTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff28Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3nodeTb4b4b4.Te6edf3linkTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3stream_opsTff7b72: Tb4b4b4{
Te6edf3readTff7b72: Tff7b72function Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3positionTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3contents Tff7b72= Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3position Tff7b72>= Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3usedBytesTb4b4b4) Tff7b72return T79c0ff0Tb4b4b4;
Tff7b72var Te6edf3size Tff7b72= Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3usedBytes Tff7b72- Te6edf3positionTb4b4b4, Te6edf3lengthTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3size Tff7b72> T79c0ff8 Tff7b72&& Te6edf3contentsTb4b4b4.Te6edf3subarrayTb4b4b4) Tb4b4b4{
T8b949e// non-trivial, and typed array
Te6edf3bufferTb4b4b4.Te6edf3setTb4b4b4(Te6edf3contentsTb4b4b4.Te6edf3subarrayTb4b4b4(Te6edf3positionTb4b4b4, Te6edf3position Tff7b72+ Te6edf3sizeTb4b4b4)Tb4b4b4, Te6edf3offsetTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3sizeTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Te6edf3bufferTb4b4b4[Te6edf3offset Tff7b72+ Te6edf3iTb4b4b4] Tff7b72= Te6edf3contentsTb4b4b4[Te6edf3position Tff7b72+ Te6edf3iTb4b4b4]Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3sizeTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3writeTff7b72: Tff7b72function Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3positionTb4b4b4, Te6edf3canOwnTb4b4b4) Tb4b4b4{
T8b949e// If the buffer is located in main memory (HEAP), and if
T8b949e// memory can grow, we can't hold on to references of the
T8b949e// memory buffer, as they may get invalidated. That means we
T8b949e// need to do copy its contents.
Tff7b72if Tb4b4b4(Te6edf3bufferTb4b4b4.Te6edf3buffer Tff7b72=== Te6edf3HEAP8Tb4b4b4.Te6edf3bufferTb4b4b4) Tb4b4b4{
Te6edf3canOwn Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3lengthTb4b4b4) Tff7b72return T79c0ff0Tb4b4b4;
Tff7b72var Te6edf3node Tff7b72= Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3timestamp Tff7b72= Tffa657DateTb4b4b4.Te6edf3nowTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3bufferTb4b4b4.Te6edf3subarray Tff7b72&& Tb4b4b4(Tff7b72!Te6edf3nodeTb4b4b4.Te6edf3contents Tff7b72|| Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4.Te6edf3subarrayTb4b4b4)Tb4b4b4) Tb4b4b4{
T8b949e// This write is from a typed array to a typed array?
Tff7b72if Tb4b4b4(Te6edf3canOwnTb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3contents Tff7b72= Te6edf3bufferTb4b4b4.Te6edf3subarrayTb4b4b4(Te6edf3offsetTb4b4b4, Te6edf3offset Tff7b72+ Te6edf3lengthTb4b4b4)Tb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3usedBytes Tff7b72= Te6edf3lengthTb4b4b4;
Tff7b72return Te6edf3lengthTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3usedBytes Tff7b72=== T79c0ff0 Tff7b72&& Te6edf3position Tff7b72=== T79c0ff0Tb4b4b4) Tb4b4b4{
T8b949e// If this is a simple first write to an empty file, do a fast set since we don't need to care about old data.
Te6edf3nodeTb4b4b4.Te6edf3contents Tff7b72= Te6edf3bufferTb4b4b4.Te6edf3sliceTb4b4b4(Te6edf3offsetTb4b4b4, Te6edf3offset Tff7b72+ Te6edf3lengthTb4b4b4)Tb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3usedBytes Tff7b72= Te6edf3lengthTb4b4b4;
Tff7b72return Te6edf3lengthTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3position Tff7b72+ Te6edf3length Tff7b72<= Te6edf3nodeTb4b4b4.Te6edf3usedBytesTb4b4b4) Tb4b4b4{
T8b949e// Writing to an already allocated and used subrange of the file?
Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4.Te6edf3setTb4b4b4(Te6edf3bufferTb4b4b4.Te6edf3subarrayTb4b4b4(Te6edf3offsetTb4b4b4, Te6edf3offset Tff7b72+ Te6edf3lengthTb4b4b4)Tb4b4b4, Te6edf3positionTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3lengthTb4b4b4;
Tb4b4b4}
Tb4b4b4}
T8b949e// Appending to an existing file and we need to reallocate, or source data did not come as a typed array.
Te6edf3MEMFSTb4b4b4.Te6edf3expandFileStorageTb4b4b4(Te6edf3nodeTb4b4b4, Te6edf3position Tff7b72+ Te6edf3lengthTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4.Te6edf3subarray Tff7b72&& Te6edf3bufferTb4b4b4.Te6edf3subarrayTb4b4b4) Tb4b4b4{
T8b949e// Use typed array write which is available.
Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4.Te6edf3setTb4b4b4(Te6edf3bufferTb4b4b4.Te6edf3subarrayTb4b4b4(Te6edf3offsetTb4b4b4, Te6edf3offset Tff7b72+ Te6edf3lengthTb4b4b4)Tb4b4b4, Te6edf3positionTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3lengthTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4[Te6edf3position Tff7b72+ Te6edf3iTb4b4b4] Tff7b72= Te6edf3bufferTb4b4b4[Te6edf3offset Tff7b72+ Te6edf3iTb4b4b4]Tb4b4b4; T8b949e// Or fall back to manual write if not.
Tb4b4b4}
Tb4b4b4}
Te6edf3nodeTb4b4b4.Te6edf3usedBytes Tff7b72= Tffa657MathTb4b4b4.Te6edf3maxTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3usedBytesTb4b4b4, Te6edf3position Tff7b72+ Te6edf3lengthTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3lengthTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3llseekTff7b72: Tff7b72function Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3whenceTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3position Tff7b72= Te6edf3offsetTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3whence Tff7b72=== T79c0ff1Tb4b4b4) Tb4b4b4{
Te6edf3position Tff7b72+= Te6edf3streamTb4b4b4.Te6edf3positionTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3whence Tff7b72=== T79c0ff2Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isFileTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3position Tff7b72+= Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3usedBytesTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3position Tff7b72< T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff28Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3positionTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3allocateTff7b72: Tff7b72function Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4) Tb4b4b4{
Te6edf3MEMFSTb4b4b4.Te6edf3expandFileStorageTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4, Te6edf3offset Tff7b72+ Te6edf3lengthTb4b4b4)Tb4b4b4;
Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3usedBytes Tff7b72= Tffa657MathTb4b4b4.Te6edf3maxTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3usedBytesTb4b4b4, Te6edf3offset Tff7b72+ Te6edf3lengthTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3mmapTff7b72: Tff7b72function Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3positionTb4b4b4, Te6edf3protTb4b4b4, Te6edf3flagsTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3FSTb4b4b4.Te6edf3isFileTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff43Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3ptrTb4b4b4;
Tff7b72var Te6edf3allocatedTb4b4b4;
Tff7b72var Te6edf3contents Tff7b72= Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4;
T8b949e// Only make a new copy when MAP_PRIVATE is specified.
Tff7b72if Tb4b4b4(Tff7b72!Tb4b4b4(Te6edf3flags Tff7b72& T79c0ff2Tb4b4b4) Tff7b72&& Te6edf3contentsTb4b4b4.Te6edf3buffer Tff7b72=== Te6edf3bufferTb4b4b4) Tb4b4b4{
T8b949e// We can't emulate MAP_SHARED when the file is not backed by the buffer
T8b949e// we're mapping to (e.g. the HEAP buffer).
Te6edf3allocated Tff7b72= Tff7b72falseTb4b4b4;
Te6edf3ptr Tff7b72= Te6edf3contentsTb4b4b4.Te6edf3byteOffsetTb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
T8b949e// Try to avoid unnecessary slices.
Tff7b72if Tb4b4b4(Te6edf3position Tff7b72> T79c0ff0 Tff7b72|| Te6edf3position Tff7b72+ Te6edf3length Tff7b72< Te6edf3contentsTb4b4b4.Te6edf3lengthTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3contentsTb4b4b4.Te6edf3subarrayTb4b4b4) Tb4b4b4{
Te6edf3contents Tff7b72= Te6edf3contentsTb4b4b4.Te6edf3subarrayTb4b4b4(Te6edf3positionTb4b4b4, Te6edf3position Tff7b72+ Te6edf3lengthTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3contents Tff7b72= Tffa657ArrayTb4b4b4.Te6edf3prototypeTb4b4b4.Te6edf3sliceTb4b4b4.Te6edf3callTb4b4b4(Te6edf3contentsTb4b4b4, Te6edf3positionTb4b4b4, Te6edf3position Tff7b72+ Te6edf3lengthTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Te6edf3allocated Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3ptr Tff7b72= Te6edf3mmapAllocTb4b4b4(Te6edf3lengthTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3ptrTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff48Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3HEAP8Tb4b4b4.Te6edf3setTb4b4b4(Te6edf3contentsTb4b4b4, Te6edf3ptrTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Tb4b4b4{ Te6edf3ptrTff7b72: Te6edf3ptrTb4b4b4, Te6edf3allocatedTff7b72: Te6edf3allocated Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3msyncTff7b72: Tff7b72function Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3mmapFlagsTb4b4b4) Tb4b4b4{
Te6edf3MEMFSTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3writeTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, T79c0ff0Tb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3offsetTb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4;
T8b949e// should we check if bytesWritten and length are the same?
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
T8b949e/** @param {boolean=} noRunDep */
Tff7b72function Te6edf3asyncLoadTb4b4b4(Te6edf3urlTb4b4b4, Te6edf3onloadTb4b4b4, Te6edf3onerrorTb4b4b4, Te6edf3noRunDepTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3dep Tff7b72= Tff7b72!Te6edf3noRunDep Tff7b72? Te6edf3getUniqueRunDependencyTb4b4b4(Ta5d6ff"al " Tff7b72+ Te6edf3urlTb4b4b4) Tff7b72: Ta5d6ff""Tb4b4b4;
Te6edf3readAsyncTb4b4b4(
Te6edf3urlTb4b4b4,
Tb4b4b4(Te6edf3arrayBufferTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3assertTb4b4b4(Te6edf3arrayBufferTb4b4b4, Ta5d6ff'Loading data file "' Tff7b72+ Te6edf3url Tff7b72+ Ta5d6ff'" failed (no arrayBuffer).'Tb4b4b4)Tb4b4b4;
Te6edf3onloadTb4b4b4(Tff7b72new Tffa657Uint8ArrayTb4b4b4(Te6edf3arrayBufferTb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3depTb4b4b4) Te6edf3removeRunDependencyTb4b4b4(Te6edf3depTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4(Te6edf3eventTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3onerrorTb4b4b4) Tb4b4b4{
Te6edf3onerrorTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72throw Ta5d6ff'Loading data file "' Tff7b72+ Te6edf3url Tff7b72+ Ta5d6ff'" failed.'Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3depTb4b4b4) Te6edf3addRunDependencyTb4b4b4(Te6edf3depTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3FS Tff7b72= Tb4b4b4{
Te6edf3rootTff7b72: Tff7b72nullTb4b4b4,
Te6edf3mountsTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3devicesTff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3streamsTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3nextInodeTff7b72: T79c0ff1Tb4b4b4,
Te6edf3nameTableTff7b72: Tff7b72nullTb4b4b4,
Te6edf3currentPathTff7b72: Ta5d6ff"/"Tb4b4b4,
Te6edf3initializedTff7b72: Tff7b72falseTb4b4b4,
Te6edf3ignorePermissionsTff7b72: Tff7b72trueTb4b4b4,
Te6edf3ErrnoErrorTff7b72: Tff7b72nullTb4b4b4,
Te6edf3genericErrorsTff7b72: Tb4b4b4{Tb4b4b4}Tb4b4b4,
Te6edf3filesystemsTff7b72: Tff7b72nullTb4b4b4,
Te6edf3syncFSRequestsTff7b72: T79c0ff0Tb4b4b4,
Te6edf3lookupPathTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3opts Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3path Tff7b72= Te6edf3PATH_FSTb4b4b4.Te6edf3resolveTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3pathTb4b4b4) Tff7b72return Tb4b4b4{ Te6edf3pathTff7b72: Ta5d6ff""Tb4b4b4, Te6edf3nodeTff7b72: Tff7b72null Tb4b4b4}Tb4b4b4;
Tff7b72var Te6edf3defaults Tff7b72= Tb4b4b4{
Te6edf3follow_mountTff7b72: Tff7b72trueTb4b4b4,
Te6edf3recurse_countTff7b72: T79c0ff0Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Te6edf3opts Tff7b72= Tffa657ObjectTb4b4b4.Te6edf3assignTb4b4b4(Te6edf3defaultsTb4b4b4, Te6edf3optsTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3optsTb4b4b4.Te6edf3recurse_count Tff7b72> T79c0ff8Tb4b4b4) Tb4b4b4{
T8b949e// max recursive lookup of 8
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff32Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// split the absolute path
Tff7b72var Te6edf3parts Tff7b72= Te6edf3pathTb4b4b4.Te6edf3splitTb4b4b4(Ta5d6ff"/"Tb4b4b4)Tb4b4b4.Te6edf3filterTb4b4b4(Tb4b4b4(Te6edf3pTb4b4b4) Tb4b4b4=> Tff7b72!Tff7b72!Te6edf3pTb4b4b4)Tb4b4b4;
T8b949e// start at the root
Tff7b72var Te6edf3current Tff7b72= Te6edf3FSTb4b4b4.Te6edf3rootTb4b4b4;
Tff7b72var Te6edf3current_path Tff7b72= Ta5d6ff"/"Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3partsTb4b4b4.Te6edf3lengthTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3islast Tff7b72= Te6edf3i Tff7b72=== Te6edf3partsTb4b4b4.Te6edf3length Tff7b72- T79c0ff1Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3islast Tff7b72&& Te6edf3optsTb4b4b4.Te6edf3parentTb4b4b4) Tb4b4b4{
T8b949e// stop resolving
Tff7b72breakTb4b4b4;
Tb4b4b4}
Te6edf3current Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupNodeTb4b4b4(Te6edf3currentTb4b4b4, Te6edf3partsTb4b4b4[Te6edf3iTb4b4b4]Tb4b4b4)Tb4b4b4;
Te6edf3current_path Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3join2Tb4b4b4(Te6edf3current_pathTb4b4b4, Te6edf3partsTb4b4b4[Te6edf3iTb4b4b4]Tb4b4b4)Tb4b4b4;
T8b949e// jump to the mount's root node if this is a mountpoint
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isMountpointTb4b4b4(Te6edf3currentTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3islast Tff7b72|| Tb4b4b4(Te6edf3islast Tff7b72&& Te6edf3optsTb4b4b4.Te6edf3follow_mountTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3current Tff7b72= Te6edf3currentTb4b4b4.Te6edf3mountedTb4b4b4.Te6edf3rootTb4b4b4;
Tb4b4b4}
Tb4b4b4}
T8b949e// by default, lookupPath will not follow a symlink if it is the final path component.
T8b949e// setting opts.follow = true will override this behavior.
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3islast Tff7b72|| Te6edf3optsTb4b4b4.Te6edf3followTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3count Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72while Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isLinkTb4b4b4(Te6edf3currentTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3link Tff7b72= Te6edf3FSTb4b4b4.Te6edf3readlinkTb4b4b4(Te6edf3current_pathTb4b4b4)Tb4b4b4;
Te6edf3current_path Tff7b72= Te6edf3PATH_FSTb4b4b4.Te6edf3resolveTb4b4b4(Te6edf3PATHTb4b4b4.Te6edf3dirnameTb4b4b4(Te6edf3current_pathTb4b4b4)Tb4b4b4, Te6edf3linkTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3current_pathTb4b4b4, Tb4b4b4{ Te6edf3recurse_countTff7b72: Te6edf3optsTb4b4b4.Te6edf3recurse_count Tff7b72+ T79c0ff1 Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3current Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3countTff7b72++ Tff7b72> T79c0ff40Tb4b4b4) Tb4b4b4{
T8b949e// limit max consecutive symlinks to 40 (SYMLOOP_MAX).
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff32Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
Tff7b72return Tb4b4b4{ Te6edf3pathTff7b72: Te6edf3current_pathTb4b4b4, Te6edf3nodeTff7b72: Te6edf3current Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3getPathTff7b72: Tb4b4b4(Te6edf3nodeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3pathTb4b4b4;
Tff7b72while Tb4b4b4(Tff7b72trueTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isRootTb4b4b4(Te6edf3nodeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3mount Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3mountTb4b4b4.Te6edf3mountpointTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3pathTb4b4b4) Tff7b72return Te6edf3mountTb4b4b4;
Tff7b72return Te6edf3mountTb4b4b4[Te6edf3mountTb4b4b4.Te6edf3length Tff7b72- T79c0ff1Tb4b4b4] Tff7b72!== Ta5d6ff"/" Tff7b72? Te6edf3mount Tff7b72+ Ta5d6ff"/" Tff7b72+ Te6edf3path Tff7b72: Te6edf3mount Tff7b72+ Te6edf3pathTb4b4b4;
Tb4b4b4}
Te6edf3path Tff7b72= Te6edf3path Tff7b72? Te6edf3nodeTb4b4b4.Te6edf3name Tff7b72+ Ta5d6ff"/" Tff7b72+ Te6edf3path Tff7b72: Te6edf3nodeTb4b4b4.Te6edf3nameTb4b4b4;
Te6edf3node Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3parentTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3hashNameTff7b72: Tb4b4b4(Te6edf3parentidTb4b4b4, Te6edf3nameTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3hash Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3nameTb4b4b4.Te6edf3lengthTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Te6edf3hash Tff7b72= Tb4b4b4(Tb4b4b4(Te6edf3hash Tff7b72<< T79c0ff5Tb4b4b4) Tff7b72- Te6edf3hash Tff7b72+ Te6edf3nameTb4b4b4.Te6edf3charCodeAtTb4b4b4(Te6edf3iTb4b4b4)Tb4b4b4) Tff7b72| T79c0ff0Tb4b4b4;
Tb4b4b4}
Tff7b72return Tb4b4b4(Tb4b4b4(Te6edf3parentid Tff7b72+ Te6edf3hashTb4b4b4) Tff7b72>>> T79c0ff0Tb4b4b4) Tff7b72% Te6edf3FSTb4b4b4.Te6edf3nameTableTb4b4b4.Te6edf3lengthTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3hashAddNodeTff7b72: Tb4b4b4(Te6edf3nodeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3hash Tff7b72= Te6edf3FSTb4b4b4.Te6edf3hashNameTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3parentTb4b4b4.Te6edf3idTb4b4b4, Te6edf3nodeTb4b4b4.Te6edf3nameTb4b4b4)Tb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3name_next Tff7b72= Te6edf3FSTb4b4b4.Te6edf3nameTableTb4b4b4[Te6edf3hashTb4b4b4]Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3nameTableTb4b4b4[Te6edf3hashTb4b4b4] Tff7b72= Te6edf3nodeTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3hashRemoveNodeTff7b72: Tb4b4b4(Te6edf3nodeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3hash Tff7b72= Te6edf3FSTb4b4b4.Te6edf3hashNameTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3parentTb4b4b4.Te6edf3idTb4b4b4, Te6edf3nodeTb4b4b4.Te6edf3nameTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3nameTableTb4b4b4[Te6edf3hashTb4b4b4] Tff7b72=== Te6edf3nodeTb4b4b4) Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3nameTableTb4b4b4[Te6edf3hashTb4b4b4] Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3name_nextTb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72var Te6edf3current Tff7b72= Te6edf3FSTb4b4b4.Te6edf3nameTableTb4b4b4[Te6edf3hashTb4b4b4]Tb4b4b4;
Tff7b72while Tb4b4b4(Te6edf3currentTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3currentTb4b4b4.Te6edf3name_next Tff7b72=== Te6edf3nodeTb4b4b4) Tb4b4b4{
Te6edf3currentTb4b4b4.Te6edf3name_next Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3name_nextTb4b4b4;
Tff7b72breakTb4b4b4;
Tb4b4b4}
Te6edf3current Tff7b72= Te6edf3currentTb4b4b4.Te6edf3name_nextTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3lookupNodeTff7b72: Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3errCode Tff7b72= Te6edf3FSTb4b4b4.Te6edf3mayLookupTb4b4b4(Te6edf3parentTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3errCodeTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(Te6edf3errCodeTb4b4b4, Te6edf3parentTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3hash Tff7b72= Te6edf3FSTb4b4b4.Te6edf3hashNameTb4b4b4(Te6edf3parentTb4b4b4.Te6edf3idTb4b4b4, Te6edf3nameTb4b4b4)Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3node Tff7b72= Te6edf3FSTb4b4b4.Te6edf3nameTableTb4b4b4[Te6edf3hashTb4b4b4]Tb4b4b4; Te6edf3nodeTb4b4b4; Te6edf3node Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3name_nextTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3nodeName Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3nameTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3parentTb4b4b4.Te6edf3id Tff7b72=== Te6edf3parentTb4b4b4.Te6edf3id Tff7b72&& Te6edf3nodeName Tff7b72=== Te6edf3nameTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3nodeTb4b4b4;
Tb4b4b4}
Tb4b4b4}
T8b949e// if we failed to find it in the cache, call into the VFS
Tff7b72return Te6edf3FSTb4b4b4.Te6edf3lookupTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3createNodeTff7b72: Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3modeTb4b4b4, Te6edf3rdevTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3node Tff7b72= Tff7b72new Te6edf3FSTb4b4b4.Te6edf3FSNodeTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3modeTb4b4b4, Te6edf3rdevTb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3hashAddNodeTb4b4b4(Te6edf3nodeTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3nodeTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3destroyNodeTff7b72: Tb4b4b4(Te6edf3nodeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3hashRemoveNodeTb4b4b4(Te6edf3nodeTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3isRootTff7b72: Tb4b4b4(Te6edf3nodeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Te6edf3node Tff7b72=== Te6edf3nodeTb4b4b4.Te6edf3parentTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3isMountpointTff7b72: Tb4b4b4(Te6edf3nodeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Tff7b72!Tff7b72!Te6edf3nodeTb4b4b4.Te6edf3mountedTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3isFileTff7b72: Tb4b4b4(Te6edf3modeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Tb4b4b4(Te6edf3mode Tff7b72& T79c0ff61440Tb4b4b4) Tff7b72=== T79c0ff32768Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3isDirTff7b72: Tb4b4b4(Te6edf3modeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Tb4b4b4(Te6edf3mode Tff7b72& T79c0ff61440Tb4b4b4) Tff7b72=== T79c0ff16384Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3isLinkTff7b72: Tb4b4b4(Te6edf3modeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Tb4b4b4(Te6edf3mode Tff7b72& T79c0ff61440Tb4b4b4) Tff7b72=== T79c0ff40960Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3isChrdevTff7b72: Tb4b4b4(Te6edf3modeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Tb4b4b4(Te6edf3mode Tff7b72& T79c0ff61440Tb4b4b4) Tff7b72=== T79c0ff8192Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3isBlkdevTff7b72: Tb4b4b4(Te6edf3modeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Tb4b4b4(Te6edf3mode Tff7b72& T79c0ff61440Tb4b4b4) Tff7b72=== T79c0ff24576Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3isFIFOTff7b72: Tb4b4b4(Te6edf3modeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Tb4b4b4(Te6edf3mode Tff7b72& T79c0ff61440Tb4b4b4) Tff7b72=== T79c0ff4096Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3isSocketTff7b72: Tb4b4b4(Te6edf3modeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Tb4b4b4(Te6edf3mode Tff7b72& T79c0ff49152Tb4b4b4) Tff7b72=== T79c0ff49152Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3flagModesTff7b72: Tb4b4b4{ Te6edf3rTff7b72: T79c0ff0Tb4b4b4, Ta5d6ff"r+"Tff7b72: T79c0ff2Tb4b4b4, Te6edf3wTff7b72: T79c0ff577Tb4b4b4, Ta5d6ff"w+"Tff7b72: T79c0ff578Tb4b4b4, Te6edf3aTff7b72: T79c0ff1089Tb4b4b4, Ta5d6ff"a+"Tff7b72: T79c0ff1090 Tb4b4b4}Tb4b4b4,
Te6edf3modeStringToFlagsTff7b72: Tb4b4b4(Te6edf3strTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3flags Tff7b72= Te6edf3FSTb4b4b4.Te6edf3flagModesTb4b4b4[Te6edf3strTb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3flags Tff7b72== Ta5d6ff"undefined"Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"Unknown file open mode: " Tff7b72+ Te6edf3strTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3flagsTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3flagsToPermissionStringTff7b72: Tb4b4b4(Te6edf3flagTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3perms Tff7b72= Tb4b4b4[Ta5d6ff"r"Tb4b4b4, Ta5d6ff"w"Tb4b4b4, Ta5d6ff"rw"Tb4b4b4]Tb4b4b4[Te6edf3flag Tff7b72& T79c0ff3Tb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3flag Tff7b72& T79c0ff512Tb4b4b4) Tb4b4b4{
Te6edf3perms Tff7b72+= Ta5d6ff"w"Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3permsTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3nodePermissionsTff7b72: Tb4b4b4(Te6edf3nodeTb4b4b4, Te6edf3permsTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3ignorePermissionsTb4b4b4) Tb4b4b4{
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}
T8b949e// return 0 if any user, group or owner bits are set.
Tff7b72if Tb4b4b4(Te6edf3permsTb4b4b4.Te6edf3includesTb4b4b4(Ta5d6ff"r"Tb4b4b4) Tff7b72&& Tff7b72!Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3mode Tff7b72& T79c0ff292Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return T79c0ff2Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3permsTb4b4b4.Te6edf3includesTb4b4b4(Ta5d6ff"w"Tb4b4b4) Tff7b72&& Tff7b72!Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3mode Tff7b72& T79c0ff146Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return T79c0ff2Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3permsTb4b4b4.Te6edf3includesTb4b4b4(Ta5d6ff"x"Tb4b4b4) Tff7b72&& Tff7b72!Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3mode Tff7b72& T79c0ff73Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return T79c0ff2Tb4b4b4;
Tb4b4b4}
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3mayLookupTff7b72: Tb4b4b4(Te6edf3dirTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3errCode Tff7b72= Te6edf3FSTb4b4b4.Te6edf3nodePermissionsTb4b4b4(Te6edf3dirTb4b4b4, Ta5d6ff"x"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3errCodeTb4b4b4) Tff7b72return Te6edf3errCodeTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3dirTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3lookupTb4b4b4) Tff7b72return T79c0ff2Tb4b4b4;
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3mayCreateTff7b72: Tb4b4b4(Te6edf3dirTb4b4b4, Te6edf3nameTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72var Te6edf3node Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupNodeTb4b4b4(Te6edf3dirTb4b4b4, Te6edf3nameTb4b4b4)Tb4b4b4;
Tff7b72return T79c0ff20Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72return Te6edf3FSTb4b4b4.Te6edf3nodePermissionsTb4b4b4(Te6edf3dirTb4b4b4, Ta5d6ff"wx"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3mayDeleteTff7b72: Tb4b4b4(Te6edf3dirTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3isdirTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3nodeTb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3node Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupNodeTb4b4b4(Te6edf3dirTb4b4b4, Te6edf3nameTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3eTb4b4b4.Te6edf3errnoTb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3errCode Tff7b72= Te6edf3FSTb4b4b4.Te6edf3nodePermissionsTb4b4b4(Te6edf3dirTb4b4b4, Ta5d6ff"wx"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3errCodeTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3errCodeTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3isdirTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3FSTb4b4b4.Te6edf3isDirTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return T79c0ff54Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isRootTb4b4b4(Te6edf3nodeTb4b4b4) Tff7b72|| Te6edf3FSTb4b4b4.Te6edf3getPathTb4b4b4(Te6edf3nodeTb4b4b4) Tff7b72=== Te6edf3FSTb4b4b4.Te6edf3cwdTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return T79c0ff10Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isDirTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return T79c0ff31Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3mayOpenTff7b72: Tb4b4b4(Te6edf3nodeTb4b4b4, Te6edf3flagsTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3nodeTb4b4b4) Tb4b4b4{
Tff7b72return T79c0ff44Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isLinkTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return T79c0ff32Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isDirTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(
Te6edf3FSTb4b4b4.Te6edf3flagsToPermissionStringTb4b4b4(Te6edf3flagsTb4b4b4) Tff7b72!== Ta5d6ff"r" Tff7b72|| T8b949e// opening for write
Te6edf3flags Tff7b72& T79c0ff512
Tb4b4b4) Tb4b4b4{
T8b949e// TODO: check for O_SEARCH? (== search for dir only)
Tff7b72return T79c0ff31Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Te6edf3FSTb4b4b4.Te6edf3nodePermissionsTb4b4b4(Te6edf3nodeTb4b4b4, Te6edf3FSTb4b4b4.Te6edf3flagsToPermissionStringTb4b4b4(Te6edf3flagsTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3MAX_OPEN_FDSTff7b72: T79c0ff4096Tb4b4b4,
Te6edf3nextfdTff7b72: Tb4b4b4(Te6edf3fd_start Tff7b72= T79c0ff0Tb4b4b4, Te6edf3fd_end Tff7b72= Te6edf3FSTb4b4b4.Te6edf3MAX_OPEN_FDSTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3fd Tff7b72= Te6edf3fd_startTb4b4b4; Te6edf3fd Tff7b72<= Te6edf3fd_endTb4b4b4; Te6edf3fdTff7b72++Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3FSTb4b4b4.Te6edf3streamsTb4b4b4[Te6edf3fdTb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3fdTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff33Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3getStreamTff7b72: Tb4b4b4(Te6edf3fdTb4b4b4) Tb4b4b4=> Te6edf3FSTb4b4b4.Te6edf3streamsTb4b4b4[Te6edf3fdTb4b4b4]Tb4b4b4,
Te6edf3createStreamTff7b72: Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3fd_startTb4b4b4, Te6edf3fd_endTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3FSTb4b4b4.Te6edf3FSStreamTb4b4b4) Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3FSStream Tff7b72= T8b949e/** @constructor */ Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3shared Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3FSStreamTb4b4b4.Te6edf3prototype Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tffa657ObjectTb4b4b4.Te6edf3definePropertiesTb4b4b4(Te6edf3FSTb4b4b4.Te6edf3FSStreamTb4b4b4.Te6edf3prototypeTb4b4b4, Tb4b4b4{
Te6edf3objectTff7b72: Tb4b4b4{
T8b949e/** @this {FS.FSStream} */
Te6edf3getTff7b72: Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3nodeTb4b4b4;
Tb4b4b4}Tb4b4b4,
T8b949e/** @this {FS.FSStream} */
Te6edf3setTff7b72: Tff7b72function Tb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3node Tff7b72= Te6edf3valTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3isReadTff7b72: Tb4b4b4{
T8b949e/** @this {FS.FSStream} */
Te6edf3getTff7b72: Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3flags Tff7b72& T79c0ff2097155Tb4b4b4) Tff7b72!== T79c0ff1Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3isWriteTff7b72: Tb4b4b4{
T8b949e/** @this {FS.FSStream} */
Te6edf3getTff7b72: Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3flags Tff7b72& T79c0ff2097155Tb4b4b4) Tff7b72!== T79c0ff0Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3isAppendTff7b72: Tb4b4b4{
T8b949e/** @this {FS.FSStream} */
Te6edf3getTff7b72: Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3flags Tff7b72& T79c0ff1024Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3flagsTff7b72: Tb4b4b4{
T8b949e/** @this {FS.FSStream} */
Te6edf3getTff7b72: Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3sharedTb4b4b4.Te6edf3flagsTb4b4b4;
Tb4b4b4}Tb4b4b4,
T8b949e/** @this {FS.FSStream} */
Te6edf3setTff7b72: Tff7b72function Tb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3sharedTb4b4b4.Te6edf3flags Tff7b72= Te6edf3valTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3positionTff7b72: Tb4b4b4{
T8b949e/** @this {FS.FSStream} */
Te6edf3getTff7b72: Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3sharedTb4b4b4.Te6edf3positionTb4b4b4;
Tb4b4b4}Tb4b4b4,
T8b949e/** @this {FS.FSStream} */
Te6edf3setTff7b72: Tff7b72function Tb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3sharedTb4b4b4.Te6edf3position Tff7b72= Te6edf3valTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// clone it, so we can return an instance of FSStream
Te6edf3stream Tff7b72= Tffa657ObjectTb4b4b4.Te6edf3assignTb4b4b4(Tff7b72new Te6edf3FSTb4b4b4.Te6edf3FSStreamTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3streamTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3fd Tff7b72= Te6edf3FSTb4b4b4.Te6edf3nextfdTb4b4b4(Te6edf3fd_startTb4b4b4, Te6edf3fd_endTb4b4b4)Tb4b4b4;
Te6edf3streamTb4b4b4.Te6edf3fd Tff7b72= Te6edf3fdTb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3streamsTb4b4b4[Te6edf3fdTb4b4b4] Tff7b72= Te6edf3streamTb4b4b4;
Tff7b72return Te6edf3streamTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3closeStreamTff7b72: Tb4b4b4(Te6edf3fdTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3streamsTb4b4b4[Te6edf3fdTb4b4b4] Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3chrdev_stream_opsTff7b72: Tb4b4b4{
Te6edf3openTff7b72: Tb4b4b4(Te6edf3streamTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3device Tff7b72= Te6edf3FSTb4b4b4.Te6edf3getDeviceTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3rdevTb4b4b4)Tb4b4b4;
T8b949e// override node's stream ops with the device's
Te6edf3streamTb4b4b4.Te6edf3stream_ops Tff7b72= Te6edf3deviceTb4b4b4.Te6edf3stream_opsTb4b4b4;
T8b949e// forward the open call
Tff7b72if Tb4b4b4(Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3openTb4b4b4) Tb4b4b4{
Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3openTb4b4b4(Te6edf3streamTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3llseekTff7b72: Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff70Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3majorTff7b72: Tb4b4b4(Te6edf3devTb4b4b4) Tb4b4b4=> Te6edf3dev Tff7b72>> T79c0ff8Tb4b4b4,
Te6edf3minorTff7b72: Tb4b4b4(Te6edf3devTb4b4b4) Tb4b4b4=> Te6edf3dev Tff7b72& T79c0ff0xffTb4b4b4,
Te6edf3makedevTff7b72: Tb4b4b4(Te6edf3maTb4b4b4, Te6edf3miTb4b4b4) Tb4b4b4=> Tb4b4b4(Te6edf3ma Tff7b72<< T79c0ff8Tb4b4b4) Tff7b72| Te6edf3miTb4b4b4,
Te6edf3registerDeviceTff7b72: Tb4b4b4(Te6edf3devTb4b4b4, Te6edf3opsTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3devicesTb4b4b4[Te6edf3devTb4b4b4] Tff7b72= Tb4b4b4{ Te6edf3stream_opsTff7b72: Te6edf3ops Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3getDeviceTff7b72: Tb4b4b4(Te6edf3devTb4b4b4) Tb4b4b4=> Te6edf3FSTb4b4b4.Te6edf3devicesTb4b4b4[Te6edf3devTb4b4b4]Tb4b4b4,
Te6edf3getMountsTff7b72: Tb4b4b4(Te6edf3mountTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3mounts Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72var Te6edf3check Tff7b72= Tb4b4b4[Te6edf3mountTb4b4b4]Tb4b4b4;
Tff7b72while Tb4b4b4(Te6edf3checkTb4b4b4.Te6edf3lengthTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3m Tff7b72= Te6edf3checkTb4b4b4.Te6edf3popTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3mountsTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3mTb4b4b4)Tb4b4b4;
Te6edf3checkTb4b4b4.Te6edf3pushTb4b4b4.Te6edf3applyTb4b4b4(Te6edf3checkTb4b4b4, Te6edf3mTb4b4b4.Te6edf3mountsTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3mountsTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3syncfsTff7b72: Tb4b4b4(Te6edf3populateTb4b4b4, Te6edf3callbackTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3populate Tff7b72== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Te6edf3callback Tff7b72= Te6edf3populateTb4b4b4;
Te6edf3populate Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}
Te6edf3FSTb4b4b4.Te6edf3syncFSRequestsTff7b72++Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3syncFSRequests Tff7b72> T79c0ff1Tb4b4b4) Tb4b4b4{
Te6edf3errTb4b4b4(
Ta5d6ff"warning: " Tff7b72+
Te6edf3FSTb4b4b4.Te6edf3syncFSRequests Tff7b72+
Ta5d6ff" FS.syncfs operations in flight at once, probably just doing extra work"
Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3mounts Tff7b72= Te6edf3FSTb4b4b4.Te6edf3getMountsTb4b4b4(Te6edf3FSTb4b4b4.Te6edf3rootTb4b4b4.Te6edf3mountTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3completed Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72function Te6edf3doCallbackTb4b4b4(Te6edf3errCodeTb4b4b4) Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3syncFSRequestsTff7b72--Tb4b4b4;
Tff7b72return Te6edf3callbackTb4b4b4(Te6edf3errCodeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3doneTb4b4b4(Te6edf3errCodeTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3errCodeTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3doneTb4b4b4.Te6edf3erroredTb4b4b4) Tb4b4b4{
Te6edf3doneTb4b4b4.Te6edf3errored Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72return Te6edf3doCallbackTb4b4b4(Te6edf3errCodeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72++Te6edf3completed Tff7b72>= Te6edf3mountsTb4b4b4.Te6edf3lengthTb4b4b4) Tb4b4b4{
Te6edf3doCallbackTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
T8b949e// sync all mounts
Te6edf3mountsTb4b4b4.Te6edf3forEachTb4b4b4(Tb4b4b4(Te6edf3mountTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3mountTb4b4b4.Te6edf3typeTb4b4b4.Te6edf3syncfsTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3doneTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3mountTb4b4b4.Te6edf3typeTb4b4b4.Te6edf3syncfsTb4b4b4(Te6edf3mountTb4b4b4, Te6edf3populateTb4b4b4, Te6edf3doneTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3mountTff7b72: Tb4b4b4(Te6edf3typeTb4b4b4, Te6edf3optsTb4b4b4, Te6edf3mountpointTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3root Tff7b72= Te6edf3mountpoint Tff7b72=== Ta5d6ff"/"Tb4b4b4;
Tff7b72var Te6edf3pseudo Tff7b72= Tff7b72!Te6edf3mountpointTb4b4b4;
Tff7b72var Te6edf3nodeTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3root Tff7b72&& Te6edf3FSTb4b4b4.Te6edf3rootTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff10Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Tff7b72!Te6edf3root Tff7b72&& Tff7b72!Te6edf3pseudoTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3mountpointTb4b4b4, Tb4b4b4{ Te6edf3follow_mountTff7b72: Tff7b72false Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3mountpoint Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3pathTb4b4b4; T8b949e// use the absolute path
Te6edf3node Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isMountpointTb4b4b4(Te6edf3nodeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff10Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3FSTb4b4b4.Te6edf3isDirTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff54Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72var Te6edf3mount Tff7b72= Tb4b4b4{
Te6edf3typeTff7b72: Te6edf3typeTb4b4b4,
Te6edf3optsTff7b72: Te6edf3optsTb4b4b4,
Te6edf3mountpointTff7b72: Te6edf3mountpointTb4b4b4,
Te6edf3mountsTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Tb4b4b4}Tb4b4b4;
T8b949e// create a root node for the fs
Tff7b72var Te6edf3mountRoot Tff7b72= Te6edf3typeTb4b4b4.Te6edf3mountTb4b4b4(Te6edf3mountTb4b4b4)Tb4b4b4;
Te6edf3mountRootTb4b4b4.Te6edf3mount Tff7b72= Te6edf3mountTb4b4b4;
Te6edf3mountTb4b4b4.Te6edf3root Tff7b72= Te6edf3mountRootTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3rootTb4b4b4) Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3root Tff7b72= Te6edf3mountRootTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3nodeTb4b4b4) Tb4b4b4{
T8b949e// set as a mountpoint
Te6edf3nodeTb4b4b4.Te6edf3mounted Tff7b72= Te6edf3mountTb4b4b4;
T8b949e// add the new mount to the current mount's children
Tff7b72if Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3mountTb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3mountTb4b4b4.Te6edf3mountsTb4b4b4.Te6edf3pushTb4b4b4(Te6edf3mountTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Te6edf3mountRootTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3unmountTff7b72: Tb4b4b4(Te6edf3mountpointTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3mountpointTb4b4b4, Tb4b4b4{ Te6edf3follow_mountTff7b72: Tff7b72false Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3FSTb4b4b4.Te6edf3isMountpointTb4b4b4(Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff28Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// destroy the nodes for this mount, and all its child mounts
Tff7b72var Te6edf3node Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Tff7b72var Te6edf3mount Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3mountedTb4b4b4;
Tff7b72var Te6edf3mounts Tff7b72= Te6edf3FSTb4b4b4.Te6edf3getMountsTb4b4b4(Te6edf3mountTb4b4b4)Tb4b4b4;
Tffa657ObjectTb4b4b4.Te6edf3keysTb4b4b4(Te6edf3FSTb4b4b4.Te6edf3nameTableTb4b4b4)Tb4b4b4.Te6edf3forEachTb4b4b4(Tb4b4b4(Te6edf3hashTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3current Tff7b72= Te6edf3FSTb4b4b4.Te6edf3nameTableTb4b4b4[Te6edf3hashTb4b4b4]Tb4b4b4;
Tff7b72while Tb4b4b4(Te6edf3currentTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3next Tff7b72= Te6edf3currentTb4b4b4.Te6edf3name_nextTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3mountsTb4b4b4.Te6edf3includesTb4b4b4(Te6edf3currentTb4b4b4.Te6edf3mountTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3destroyNodeTb4b4b4(Te6edf3currentTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3current Tff7b72= Te6edf3nextTb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
T8b949e// no longer a mountpoint
Te6edf3nodeTb4b4b4.Te6edf3mounted Tff7b72= Tff7b72nullTb4b4b4;
T8b949e// remove this mount from the child mounts
Tff7b72var Te6edf3idx Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3mountTb4b4b4.Te6edf3mountsTb4b4b4.Te6edf3indexOfTb4b4b4(Te6edf3mountTb4b4b4)Tb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3mountTb4b4b4.Te6edf3mountsTb4b4b4.Te6edf3spliceTb4b4b4(Te6edf3idxTb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3lookupTff7b72: Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Te6edf3parentTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3lookupTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3mknodTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3modeTb4b4b4, Te6edf3devTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3pathTb4b4b4, Tb4b4b4{ Te6edf3parentTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3parent Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Tff7b72var Te6edf3name Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3basenameTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3name Tff7b72|| Te6edf3name Tff7b72=== Ta5d6ff"." Tff7b72|| Te6edf3name Tff7b72=== Ta5d6ff".."Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff28Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3errCode Tff7b72= Te6edf3FSTb4b4b4.Te6edf3mayCreateTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3errCodeTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(Te6edf3errCodeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3parentTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3mknodTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff63Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3parentTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3mknodTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3modeTb4b4b4, Te6edf3devTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3createTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3modeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3mode Tff7b72= Te6edf3mode Tff7b72!== Tff7b72undefined Tff7b72? Te6edf3mode Tff7b72: T79c0ff438 T8b949e/* 0666 */Tb4b4b4;
Te6edf3mode Tff7b72&= T79c0ff4095Tb4b4b4;
Te6edf3mode Tff7b72|= T79c0ff32768Tb4b4b4;
Tff7b72return Te6edf3FSTb4b4b4.Te6edf3mknodTb4b4b4(Te6edf3pathTb4b4b4, Te6edf3modeTb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3mkdirTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3modeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3mode Tff7b72= Te6edf3mode Tff7b72!== Tff7b72undefined Tff7b72? Te6edf3mode Tff7b72: T79c0ff511 T8b949e/* 0777 */Tb4b4b4;
Te6edf3mode Tff7b72&= T79c0ff511 Tff7b72| T79c0ff512Tb4b4b4;
Te6edf3mode Tff7b72|= T79c0ff16384Tb4b4b4;
Tff7b72return Te6edf3FSTb4b4b4.Te6edf3mknodTb4b4b4(Te6edf3pathTb4b4b4, Te6edf3modeTb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3mkdirTreeTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3modeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3dirs Tff7b72= Te6edf3pathTb4b4b4.Te6edf3splitTb4b4b4(Ta5d6ff"/"Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3d Tff7b72= Ta5d6ff""Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3dirsTb4b4b4.Te6edf3lengthTb4b4b4; Tff7b72++Te6edf3iTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3dirsTb4b4b4[Te6edf3iTb4b4b4]Tb4b4b4) Tff7b72continueTb4b4b4;
Te6edf3d Tff7b72+= Ta5d6ff"/" Tff7b72+ Te6edf3dirsTb4b4b4[Te6edf3iTb4b4b4]Tb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3mkdirTb4b4b4(Te6edf3dTb4b4b4, Te6edf3modeTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3eTb4b4b4.Te6edf3errno Tff7b72!= T79c0ff20Tb4b4b4) Tff7b72throw Te6edf3eTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3mkdevTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3modeTb4b4b4, Te6edf3devTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3dev Tff7b72== Ta5d6ff"undefined"Tb4b4b4) Tb4b4b4{
Te6edf3dev Tff7b72= Te6edf3modeTb4b4b4;
Te6edf3mode Tff7b72= T79c0ff438 T8b949e/* 0666 */Tb4b4b4;
Tb4b4b4}
Te6edf3mode Tff7b72|= T79c0ff8192Tb4b4b4;
Tff7b72return Te6edf3FSTb4b4b4.Te6edf3mknodTb4b4b4(Te6edf3pathTb4b4b4, Te6edf3modeTb4b4b4, Te6edf3devTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3symlinkTff7b72: Tb4b4b4(Te6edf3oldpathTb4b4b4, Te6edf3newpathTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3PATH_FSTb4b4b4.Te6edf3resolveTb4b4b4(Te6edf3oldpathTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff44Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3newpathTb4b4b4, Tb4b4b4{ Te6edf3parentTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3parent Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3parentTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff44Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3newname Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3basenameTb4b4b4(Te6edf3newpathTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3errCode Tff7b72= Te6edf3FSTb4b4b4.Te6edf3mayCreateTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3newnameTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3errCodeTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(Te6edf3errCodeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3parentTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3symlinkTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff63Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3parentTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3symlinkTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3newnameTb4b4b4, Te6edf3oldpathTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3renameTff7b72: Tb4b4b4(Te6edf3old_pathTb4b4b4, Te6edf3new_pathTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3old_dirname Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3dirnameTb4b4b4(Te6edf3old_pathTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3new_dirname Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3dirnameTb4b4b4(Te6edf3new_pathTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3old_name Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3basenameTb4b4b4(Te6edf3old_pathTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3new_name Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3basenameTb4b4b4(Te6edf3new_pathTb4b4b4)Tb4b4b4;
T8b949e// parents must exist
Tff7b72var Te6edf3lookupTb4b4b4, Te6edf3old_dirTb4b4b4, Te6edf3new_dirTb4b4b4;
T8b949e// let the errors from non existant directories percolate up
Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3old_pathTb4b4b4, Tb4b4b4{ Te6edf3parentTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3old_dir Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3new_pathTb4b4b4, Tb4b4b4{ Te6edf3parentTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3new_dir Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3old_dir Tff7b72|| Tff7b72!Te6edf3new_dirTb4b4b4) Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff44Tb4b4b4)Tb4b4b4;
T8b949e// need to be part of the same mount
Tff7b72if Tb4b4b4(Te6edf3old_dirTb4b4b4.Te6edf3mount Tff7b72!== Te6edf3new_dirTb4b4b4.Te6edf3mountTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff75Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// source must exist
Tff7b72var Te6edf3old_node Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupNodeTb4b4b4(Te6edf3old_dirTb4b4b4, Te6edf3old_nameTb4b4b4)Tb4b4b4;
T8b949e// old path should not be an ancestor of the new path
Tff7b72var Te6edf3relative Tff7b72= Te6edf3PATH_FSTb4b4b4.Te6edf3relativeTb4b4b4(Te6edf3old_pathTb4b4b4, Te6edf3new_dirnameTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3relativeTb4b4b4.Te6edf3charAtTb4b4b4(T79c0ff0Tb4b4b4) Tff7b72!== Ta5d6ff"."Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff28Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// new path should not be an ancestor of the old path
Te6edf3relative Tff7b72= Te6edf3PATH_FSTb4b4b4.Te6edf3relativeTb4b4b4(Te6edf3new_pathTb4b4b4, Te6edf3old_dirnameTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3relativeTb4b4b4.Te6edf3charAtTb4b4b4(T79c0ff0Tb4b4b4) Tff7b72!== Ta5d6ff"."Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff55Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// see if the new path already exists
Tff7b72var Te6edf3new_nodeTb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3new_node Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupNodeTb4b4b4(Te6edf3new_dirTb4b4b4, Te6edf3new_nameTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
T8b949e// not fatal
Tb4b4b4}
T8b949e// early out if nothing needs to change
Tff7b72if Tb4b4b4(Te6edf3old_node Tff7b72=== Te6edf3new_nodeTb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
T8b949e// we'll need to delete the old entry
Tff7b72var Te6edf3isdir Tff7b72= Te6edf3FSTb4b4b4.Te6edf3isDirTb4b4b4(Te6edf3old_nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3errCode Tff7b72= Te6edf3FSTb4b4b4.Te6edf3mayDeleteTb4b4b4(Te6edf3old_dirTb4b4b4, Te6edf3old_nameTb4b4b4, Te6edf3isdirTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3errCodeTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(Te6edf3errCodeTb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// need delete permissions if we'll be overwriting.
T8b949e// need create permissions if new doesn't already exist.
Te6edf3errCode Tff7b72= Te6edf3new_node Tff7b72? Te6edf3FSTb4b4b4.Te6edf3mayDeleteTb4b4b4(Te6edf3new_dirTb4b4b4, Te6edf3new_nameTb4b4b4, Te6edf3isdirTb4b4b4) Tff7b72: Te6edf3FSTb4b4b4.Te6edf3mayCreateTb4b4b4(Te6edf3new_dirTb4b4b4, Te6edf3new_nameTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3errCodeTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(Te6edf3errCodeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3old_dirTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3renameTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff63Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isMountpointTb4b4b4(Te6edf3old_nodeTb4b4b4) Tff7b72|| Tb4b4b4(Te6edf3new_node Tff7b72&& Te6edf3FSTb4b4b4.Te6edf3isMountpointTb4b4b4(Te6edf3new_nodeTb4b4b4)Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff10Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// if we are going to change the parent, check write permissions
Tff7b72if Tb4b4b4(Te6edf3new_dir Tff7b72!== Te6edf3old_dirTb4b4b4) Tb4b4b4{
Te6edf3errCode Tff7b72= Te6edf3FSTb4b4b4.Te6edf3nodePermissionsTb4b4b4(Te6edf3old_dirTb4b4b4, Ta5d6ff"w"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3errCodeTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(Te6edf3errCodeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
T8b949e// remove the node from the lookup hash
Te6edf3FSTb4b4b4.Te6edf3hashRemoveNodeTb4b4b4(Te6edf3old_nodeTb4b4b4)Tb4b4b4;
T8b949e// do the underlying fs rename
Tff7b72try Tb4b4b4{
Te6edf3old_dirTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3renameTb4b4b4(Te6edf3old_nodeTb4b4b4, Te6edf3new_dirTb4b4b4, Te6edf3new_nameTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72throw Te6edf3eTb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
T8b949e// add the node back to the hash (in case node_ops.rename
T8b949e// changed its name)
Te6edf3FSTb4b4b4.Te6edf3hashAddNodeTb4b4b4(Te6edf3old_nodeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3rmdirTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3pathTb4b4b4, Tb4b4b4{ Te6edf3parentTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3parent Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Tff7b72var Te6edf3name Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3basenameTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3node Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupNodeTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3errCode Tff7b72= Te6edf3FSTb4b4b4.Te6edf3mayDeleteTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4, Tff7b72trueTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3errCodeTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(Te6edf3errCodeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3parentTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3rmdirTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff63Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isMountpointTb4b4b4(Te6edf3nodeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff10Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3parentTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3rmdirTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3destroyNodeTb4b4b4(Te6edf3nodeTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3readdirTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3pathTb4b4b4, Tb4b4b4{ Te6edf3followTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3node Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3nodeTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3readdirTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff54Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3nodeTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3readdirTb4b4b4(Te6edf3nodeTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3unlinkTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3pathTb4b4b4, Tb4b4b4{ Te6edf3parentTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3parent Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3parentTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff44Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3name Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3basenameTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3node Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupNodeTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3errCode Tff7b72= Te6edf3FSTb4b4b4.Te6edf3mayDeleteTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3errCodeTb4b4b4) Tb4b4b4{
T8b949e// According to POSIX, we should map EISDIR to EPERM, but
T8b949e// we instead do what Linux does (and we must, as we use
T8b949e// the musl linux libc).
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(Te6edf3errCodeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3parentTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3unlinkTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff63Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isMountpointTb4b4b4(Te6edf3nodeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff10Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3parentTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3unlinkTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3destroyNodeTb4b4b4(Te6edf3nodeTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3readlinkTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3link Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3linkTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff44Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3linkTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3readlinkTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff28Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3PATH_FSTb4b4b4.Te6edf3resolveTb4b4b4(Te6edf3FSTb4b4b4.Te6edf3getPathTb4b4b4(Te6edf3linkTb4b4b4.Te6edf3parentTb4b4b4)Tb4b4b4, Te6edf3linkTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3readlinkTb4b4b4(Te6edf3linkTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3statTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3dontFollowTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3pathTb4b4b4, Tb4b4b4{ Te6edf3followTff7b72: Tff7b72!Te6edf3dontFollow Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3node Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3nodeTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff44Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3nodeTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3getattrTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff63Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3nodeTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3getattrTb4b4b4(Te6edf3nodeTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3lstatTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Te6edf3FSTb4b4b4.Te6edf3statTb4b4b4(Te6edf3pathTb4b4b4, Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3chmodTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3modeTb4b4b4, Te6edf3dontFollowTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3nodeTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3path Tff7b72== Ta5d6ff"string"Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3pathTb4b4b4, Tb4b4b4{ Te6edf3followTff7b72: Tff7b72!Te6edf3dontFollow Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3node Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3node Tff7b72= Te6edf3pathTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3nodeTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3setattrTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff63Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3nodeTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3setattrTb4b4b4(Te6edf3nodeTb4b4b4, Tb4b4b4{
Te6edf3modeTff7b72: Tb4b4b4(Te6edf3mode Tff7b72& T79c0ff4095Tb4b4b4) Tff7b72| Tb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3mode Tff7b72& Tff7b72~T79c0ff4095Tb4b4b4)Tb4b4b4,
Te6edf3timestampTff7b72: Tffa657DateTb4b4b4.Te6edf3nowTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3lchmodTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3modeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3chmodTb4b4b4(Te6edf3pathTb4b4b4, Te6edf3modeTb4b4b4, Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3fchmodTff7b72: Tb4b4b4(Te6edf3fdTb4b4b4, Te6edf3modeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3stream Tff7b72= Te6edf3FSTb4b4b4.Te6edf3getStreamTb4b4b4(Te6edf3fdTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff8Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3FSTb4b4b4.Te6edf3chmodTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4, Te6edf3modeTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3chownTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3uidTb4b4b4, Te6edf3gidTb4b4b4, Te6edf3dontFollowTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3nodeTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3path Tff7b72== Ta5d6ff"string"Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3pathTb4b4b4, Tb4b4b4{ Te6edf3followTff7b72: Tff7b72!Te6edf3dontFollow Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3node Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3node Tff7b72= Te6edf3pathTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3nodeTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3setattrTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff63Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3nodeTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3setattrTb4b4b4(Te6edf3nodeTb4b4b4, Tb4b4b4{
Te6edf3timestampTff7b72: Tffa657DateTb4b4b4.Te6edf3nowTb4b4b4(Tb4b4b4)Tb4b4b4,
T8b949e// we ignore the uid / gid for now
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3lchownTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3uidTb4b4b4, Te6edf3gidTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3chownTb4b4b4(Te6edf3pathTb4b4b4, Te6edf3uidTb4b4b4, Te6edf3gidTb4b4b4, Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3fchownTff7b72: Tb4b4b4(Te6edf3fdTb4b4b4, Te6edf3uidTb4b4b4, Te6edf3gidTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3stream Tff7b72= Te6edf3FSTb4b4b4.Te6edf3getStreamTb4b4b4(Te6edf3fdTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff8Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3FSTb4b4b4.Te6edf3chownTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4, Te6edf3uidTb4b4b4, Te6edf3gidTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3truncateTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3lenTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3len Tff7b72< T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff28Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3nodeTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3path Tff7b72== Ta5d6ff"string"Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3pathTb4b4b4, Tb4b4b4{ Te6edf3followTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3node Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3node Tff7b72= Te6edf3pathTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3nodeTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3setattrTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff63Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isDirTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff31Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3FSTb4b4b4.Te6edf3isFileTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff28Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3errCode Tff7b72= Te6edf3FSTb4b4b4.Te6edf3nodePermissionsTb4b4b4(Te6edf3nodeTb4b4b4, Ta5d6ff"w"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3errCodeTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(Te6edf3errCodeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3nodeTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3setattrTb4b4b4(Te6edf3nodeTb4b4b4, Tb4b4b4{
Te6edf3sizeTff7b72: Te6edf3lenTb4b4b4,
Te6edf3timestampTff7b72: Tffa657DateTb4b4b4.Te6edf3nowTb4b4b4(Tb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3ftruncateTff7b72: Tb4b4b4(Te6edf3fdTb4b4b4, Te6edf3lenTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3stream Tff7b72= Te6edf3FSTb4b4b4.Te6edf3getStreamTb4b4b4(Te6edf3fdTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff8Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tb4b4b4(Te6edf3streamTb4b4b4.Te6edf3flags Tff7b72& T79c0ff2097155Tb4b4b4) Tff7b72=== T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff28Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3FSTb4b4b4.Te6edf3truncateTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4, Te6edf3lenTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3utimeTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3atimeTb4b4b4, Te6edf3mtimeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3pathTb4b4b4, Tb4b4b4{ Te6edf3followTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3node Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3node_opsTb4b4b4.Te6edf3setattrTb4b4b4(Te6edf3nodeTb4b4b4, Tb4b4b4{
Te6edf3timestampTff7b72: Tffa657MathTb4b4b4.Te6edf3maxTb4b4b4(Te6edf3atimeTb4b4b4, Te6edf3mtimeTb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3openTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3flagsTb4b4b4, Te6edf3modeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3path Tff7b72=== Ta5d6ff""Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff44Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3flags Tff7b72= Tff7b72typeof Te6edf3flags Tff7b72== Ta5d6ff"string" Tff7b72? Te6edf3FSTb4b4b4.Te6edf3modeStringToFlagsTb4b4b4(Te6edf3flagsTb4b4b4) Tff7b72: Te6edf3flagsTb4b4b4;
Te6edf3mode Tff7b72= Tff7b72typeof Te6edf3mode Tff7b72== Ta5d6ff"undefined" Tff7b72? T79c0ff438 T8b949e/* 0666 */ Tff7b72: Te6edf3modeTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3flags Tff7b72& T79c0ff64Tb4b4b4) Tb4b4b4{
Te6edf3mode Tff7b72= Tb4b4b4(Te6edf3mode Tff7b72& T79c0ff4095Tb4b4b4) Tff7b72| T79c0ff32768Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3mode Tff7b72= T79c0ff0Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3nodeTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3path Tff7b72== Ta5d6ff"object"Tb4b4b4) Tb4b4b4{
Te6edf3node Tff7b72= Te6edf3pathTb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3path Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3normalizeTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72var Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3pathTb4b4b4, Tb4b4b4{
Te6edf3followTff7b72: Tff7b72!Tb4b4b4(Te6edf3flags Tff7b72& T79c0ff131072Tb4b4b4)Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3node Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
T8b949e// ignore
Tb4b4b4}
Tb4b4b4}
T8b949e// perhaps we need to create the node
Tff7b72var Te6edf3created Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3flags Tff7b72& T79c0ff64Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3nodeTb4b4b4) Tb4b4b4{
T8b949e// if O_CREAT and O_EXCL are set, error out if the node already exists
Tff7b72if Tb4b4b4(Te6edf3flags Tff7b72& T79c0ff128Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff20Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tb4b4b4{
T8b949e// node doesn't exist, try to create it
Te6edf3node Tff7b72= Te6edf3FSTb4b4b4.Te6edf3mknodTb4b4b4(Te6edf3pathTb4b4b4, Te6edf3modeTb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4;
Te6edf3created Tff7b72= Tff7b72trueTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3nodeTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff44Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// can't truncate a device
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isChrdevTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3flags Tff7b72&= Tff7b72~T79c0ff512Tb4b4b4;
Tb4b4b4}
T8b949e// if asked only for a directory, then this must be one
Tff7b72if Tb4b4b4(Te6edf3flags Tff7b72& T79c0ff65536 Tff7b72&& Tff7b72!Te6edf3FSTb4b4b4.Te6edf3isDirTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff54Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// check permissions, if this is not a file we just created now (it is ok to
T8b949e// create and write to a file with read-only permissions; it is read-only
T8b949e// for later use)
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3createdTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3errCode Tff7b72= Te6edf3FSTb4b4b4.Te6edf3mayOpenTb4b4b4(Te6edf3nodeTb4b4b4, Te6edf3flagsTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3errCodeTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(Te6edf3errCodeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
T8b949e// do truncation if necessary
Tff7b72if Tb4b4b4(Te6edf3flags Tff7b72& T79c0ff512 Tff7b72&& Tff7b72!Te6edf3createdTb4b4b4) Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3truncateTb4b4b4(Te6edf3nodeTb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// we've already handled these, don't pass down to the underlying vfs
Te6edf3flags Tff7b72&= Tff7b72~Tb4b4b4(T79c0ff128 Tff7b72| T79c0ff512 Tff7b72| T79c0ff131072Tb4b4b4)Tb4b4b4;
T8b949e// register the stream with the filesystem
Tff7b72var Te6edf3stream Tff7b72= Te6edf3FSTb4b4b4.Te6edf3createStreamTb4b4b4(Tb4b4b4{
Te6edf3nodeTff7b72: Te6edf3nodeTb4b4b4,
Te6edf3pathTff7b72: Te6edf3FSTb4b4b4.Te6edf3getPathTb4b4b4(Te6edf3nodeTb4b4b4)Tb4b4b4, T8b949e// we want the absolute path to the node
Te6edf3flagsTff7b72: Te6edf3flagsTb4b4b4,
Te6edf3seekableTff7b72: Tff7b72trueTb4b4b4,
Te6edf3positionTff7b72: T79c0ff0Tb4b4b4,
Te6edf3stream_opsTff7b72: Te6edf3nodeTb4b4b4.Te6edf3stream_opsTb4b4b4,
T8b949e// used by the file family libc calls (fopen, fwrite, ferror, etc.)
Te6edf3ungottenTff7b72: Tb4b4b4[Tb4b4b4]Tb4b4b4,
Te6edf3errorTff7b72: Tff7b72falseTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
T8b949e// call the new stream's open function
Tff7b72if Tb4b4b4(Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3openTb4b4b4) Tb4b4b4{
Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3openTb4b4b4(Te6edf3streamTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"logReadFiles"Tb4b4b4] Tff7b72&& Tff7b72!Tb4b4b4(Te6edf3flags Tff7b72& T79c0ff1Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3FSTb4b4b4.Te6edf3readFilesTb4b4b4) Te6edf3FSTb4b4b4.Te6edf3readFiles Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Tb4b4b4(Te6edf3path Tff7b72in Te6edf3FSTb4b4b4.Te6edf3readFilesTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3readFilesTb4b4b4[Te6edf3pathTb4b4b4] Tff7b72= T79c0ff1Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Te6edf3streamTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3closeTff7b72: Tb4b4b4(Te6edf3streamTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isClosedTb4b4b4(Te6edf3streamTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff8Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3streamTb4b4b4.Te6edf3getdentsTb4b4b4) Te6edf3streamTb4b4b4.Te6edf3getdents Tff7b72= Tff7b72nullTb4b4b4; T8b949e// free readdir state
Tff7b72try Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3closeTb4b4b4) Tb4b4b4{
Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3closeTb4b4b4(Te6edf3streamTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72throw Te6edf3eTb4b4b4;
Tb4b4b4} Tff7b72finally Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3closeStreamTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3fdTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3streamTb4b4b4.Te6edf3fd Tff7b72= Tff7b72nullTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3isClosedTff7b72: Tb4b4b4(Te6edf3streamTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Te6edf3streamTb4b4b4.Te6edf3fd Tff7b72=== Tff7b72nullTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3llseekTff7b72: Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3whenceTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isClosedTb4b4b4(Te6edf3streamTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff8Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4.Te6edf3seekable Tff7b72|| Tff7b72!Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3llseekTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff70Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3whence Tff7b72!= T79c0ff0 Tff7b72&& Te6edf3whence Tff7b72!= T79c0ff1 Tff7b72&& Te6edf3whence Tff7b72!= T79c0ff2Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff28Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3streamTb4b4b4.Te6edf3position Tff7b72= Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3llseekTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3whenceTb4b4b4)Tb4b4b4;
Te6edf3streamTb4b4b4.Te6edf3ungotten Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4;
Tff7b72return Te6edf3streamTb4b4b4.Te6edf3positionTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3readTff7b72: Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3positionTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3length Tff7b72< T79c0ff0 Tff7b72|| Te6edf3position Tff7b72< T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff28Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isClosedTb4b4b4(Te6edf3streamTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff8Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tb4b4b4(Te6edf3streamTb4b4b4.Te6edf3flags Tff7b72& T79c0ff2097155Tb4b4b4) Tff7b72=== T79c0ff1Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff8Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isDirTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff31Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3readTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff28Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3seeking Tff7b72= Tff7b72typeof Te6edf3position Tff7b72!= Ta5d6ff"undefined"Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3seekingTb4b4b4) Tb4b4b4{
Te6edf3position Tff7b72= Te6edf3streamTb4b4b4.Te6edf3positionTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4.Te6edf3seekableTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff70Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3bytesRead Tff7b72= Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3readTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3positionTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3seekingTb4b4b4) Te6edf3streamTb4b4b4.Te6edf3position Tff7b72+= Te6edf3bytesReadTb4b4b4;
Tff7b72return Te6edf3bytesReadTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3writeTff7b72: Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3positionTb4b4b4, Te6edf3canOwnTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3length Tff7b72< T79c0ff0 Tff7b72|| Te6edf3position Tff7b72< T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff28Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isClosedTb4b4b4(Te6edf3streamTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff8Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tb4b4b4(Te6edf3streamTb4b4b4.Te6edf3flags Tff7b72& T79c0ff2097155Tb4b4b4) Tff7b72=== T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff8Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isDirTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff31Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3writeTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff28Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3streamTb4b4b4.Te6edf3seekable Tff7b72&& Te6edf3streamTb4b4b4.Te6edf3flags Tff7b72& T79c0ff1024Tb4b4b4) Tb4b4b4{
T8b949e// seek to the end before writing in append mode
Te6edf3FSTb4b4b4.Te6edf3llseekTb4b4b4(Te6edf3streamTb4b4b4, T79c0ff0Tb4b4b4, T79c0ff2Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3seeking Tff7b72= Tff7b72typeof Te6edf3position Tff7b72!= Ta5d6ff"undefined"Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3seekingTb4b4b4) Tb4b4b4{
Te6edf3position Tff7b72= Te6edf3streamTb4b4b4.Te6edf3positionTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4.Te6edf3seekableTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff70Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3bytesWritten Tff7b72= Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3writeTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3positionTb4b4b4, Te6edf3canOwnTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3seekingTb4b4b4) Te6edf3streamTb4b4b4.Te6edf3position Tff7b72+= Te6edf3bytesWrittenTb4b4b4;
Tff7b72return Te6edf3bytesWrittenTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3allocateTff7b72: Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3isClosedTb4b4b4(Te6edf3streamTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff8Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3offset Tff7b72< T79c0ff0 Tff7b72|| Te6edf3length Tff7b72<= T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff28Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tb4b4b4(Te6edf3streamTb4b4b4.Te6edf3flags Tff7b72& T79c0ff2097155Tb4b4b4) Tff7b72=== T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff8Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3FSTb4b4b4.Te6edf3isFileTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4) Tff7b72&& Tff7b72!Te6edf3FSTb4b4b4.Te6edf3isDirTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff43Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3allocateTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff138Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3allocateTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3mmapTff7b72: Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3positionTb4b4b4, Te6edf3protTb4b4b4, Te6edf3flagsTb4b4b4) Tb4b4b4=> Tb4b4b4{
T8b949e// User requests writing to file (prot & PROT_WRITE != 0).
T8b949e// Checking if we have permissions to write to the file unless
T8b949e// MAP_PRIVATE flag is set. According to POSIX spec it is possible
T8b949e// to write to file opened in read-only mode with MAP_PRIVATE flag,
T8b949e// as all modifications will be visible only in the memory of
T8b949e// the current process.
Tff7b72if Tb4b4b4(Tb4b4b4(Te6edf3prot Tff7b72& T79c0ff2Tb4b4b4) Tff7b72!== T79c0ff0 Tff7b72&& Tb4b4b4(Te6edf3flags Tff7b72& T79c0ff2Tb4b4b4) Tff7b72=== T79c0ff0 Tff7b72&& Tb4b4b4(Te6edf3streamTb4b4b4.Te6edf3flags Tff7b72& T79c0ff2097155Tb4b4b4) Tff7b72!== T79c0ff2Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff2Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tb4b4b4(Te6edf3streamTb4b4b4.Te6edf3flags Tff7b72& T79c0ff2097155Tb4b4b4) Tff7b72=== T79c0ff1Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff2Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3mmapTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff43Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3mmapTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3positionTb4b4b4, Te6edf3protTb4b4b4, Te6edf3flagsTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3msyncTff7b72: Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3mmapFlagsTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3msyncTb4b4b4) Tb4b4b4{
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3msyncTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3mmapFlagsTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3munmapTff7b72: Tb4b4b4(Te6edf3streamTb4b4b4) Tb4b4b4=> T79c0ff0Tb4b4b4,
Te6edf3ioctlTff7b72: Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3cmdTb4b4b4, Te6edf3argTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3ioctlTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff59Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3streamTb4b4b4.Te6edf3stream_opsTb4b4b4.Te6edf3ioctlTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3cmdTb4b4b4, Te6edf3argTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3readFileTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3opts Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3optsTb4b4b4.Te6edf3flags Tff7b72= Te6edf3optsTb4b4b4.Te6edf3flags Tff7b72|| T79c0ff0Tb4b4b4;
Te6edf3optsTb4b4b4.Te6edf3encoding Tff7b72= Te6edf3optsTb4b4b4.Te6edf3encoding Tff7b72|| Ta5d6ff"binary"Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3optsTb4b4b4.Te6edf3encoding Tff7b72!== Ta5d6ff"utf8" Tff7b72&& Te6edf3optsTb4b4b4.Te6edf3encoding Tff7b72!== Ta5d6ff"binary"Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff'Invalid encoding type "' Tff7b72+ Te6edf3optsTb4b4b4.Te6edf3encoding Tff7b72+ Ta5d6ff'"'Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3retTb4b4b4;
Tff7b72var Te6edf3stream Tff7b72= Te6edf3FSTb4b4b4.Te6edf3openTb4b4b4(Te6edf3pathTb4b4b4, Te6edf3optsTb4b4b4.Te6edf3flagsTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3stat Tff7b72= Te6edf3FSTb4b4b4.Te6edf3statTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3length Tff7b72= Te6edf3statTb4b4b4.Te6edf3sizeTb4b4b4;
Tff7b72var Te6edf3buf Tff7b72= Tff7b72new Tffa657Uint8ArrayTb4b4b4(Te6edf3lengthTb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3readTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufTb4b4b4, T79c0ff0Tb4b4b4, Te6edf3lengthTb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3optsTb4b4b4.Te6edf3encoding Tff7b72=== Ta5d6ff"utf8"Tb4b4b4) Tb4b4b4{
Te6edf3ret Tff7b72= Te6edf3UTF8ArrayToStringTb4b4b4(Te6edf3bufTb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3optsTb4b4b4.Te6edf3encoding Tff7b72=== Ta5d6ff"binary"Tb4b4b4) Tb4b4b4{
Te6edf3ret Tff7b72= Te6edf3bufTb4b4b4;
Tb4b4b4}
Te6edf3FSTb4b4b4.Te6edf3closeTb4b4b4(Te6edf3streamTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3retTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3writeFileTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3dataTb4b4b4, Te6edf3opts Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3optsTb4b4b4.Te6edf3flags Tff7b72= Te6edf3optsTb4b4b4.Te6edf3flags Tff7b72|| T79c0ff577Tb4b4b4;
Tff7b72var Te6edf3stream Tff7b72= Te6edf3FSTb4b4b4.Te6edf3openTb4b4b4(Te6edf3pathTb4b4b4, Te6edf3optsTb4b4b4.Te6edf3flagsTb4b4b4, Te6edf3optsTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3data Tff7b72== Ta5d6ff"string"Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3buf Tff7b72= Tff7b72new Tffa657Uint8ArrayTb4b4b4(Te6edf3lengthBytesUTF8Tb4b4b4(Te6edf3dataTb4b4b4) Tff7b72+ T79c0ff1Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3actualNumBytes Tff7b72= Te6edf3stringToUTF8ArrayTb4b4b4(Te6edf3dataTb4b4b4, Te6edf3bufTb4b4b4, T79c0ff0Tb4b4b4, Te6edf3bufTb4b4b4.Te6edf3lengthTb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3writeTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufTb4b4b4, T79c0ff0Tb4b4b4, Te6edf3actualNumBytesTb4b4b4, Tff7b72undefinedTb4b4b4, Te6edf3optsTb4b4b4.Te6edf3canOwnTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Tffa657ArrayBufferTb4b4b4.Te6edf3isViewTb4b4b4(Te6edf3dataTb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3writeTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3dataTb4b4b4, T79c0ff0Tb4b4b4, Te6edf3dataTb4b4b4.Te6edf3byteLengthTb4b4b4, Tff7b72undefinedTb4b4b4, Te6edf3optsTb4b4b4.Te6edf3canOwnTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"Unsupported data type"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3FSTb4b4b4.Te6edf3closeTb4b4b4(Te6edf3streamTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3cwdTff7b72: Tb4b4b4(Tb4b4b4) Tb4b4b4=> Te6edf3FSTb4b4b4.Te6edf3currentPathTb4b4b4,
Te6edf3chdirTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3pathTb4b4b4, Tb4b4b4{ Te6edf3followTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3lookupTb4b4b4.Te6edf3node Tff7b72=== Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff44Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3FSTb4b4b4.Te6edf3isDirTb4b4b4(Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff54Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3errCode Tff7b72= Te6edf3FSTb4b4b4.Te6edf3nodePermissionsTb4b4b4(Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4, Ta5d6ff"x"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3errCodeTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(Te6edf3errCodeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3FSTb4b4b4.Te6edf3currentPath Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3pathTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3createDefaultDirectoriesTff7b72: Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3mkdirTb4b4b4(Ta5d6ff"/tmp"Tb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3mkdirTb4b4b4(Ta5d6ff"/home"Tb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3mkdirTb4b4b4(Ta5d6ff"/home/web_user"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3createDefaultDevicesTff7b72: Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
T8b949e// create /dev
Te6edf3FSTb4b4b4.Te6edf3mkdirTb4b4b4(Ta5d6ff"/dev"Tb4b4b4)Tb4b4b4;
T8b949e// setup /dev/null
Te6edf3FSTb4b4b4.Te6edf3registerDeviceTb4b4b4(Te6edf3FSTb4b4b4.Te6edf3makedevTb4b4b4(T79c0ff1Tb4b4b4, T79c0ff3Tb4b4b4)Tb4b4b4, Tb4b4b4{
Te6edf3readTff7b72: Tb4b4b4(Tb4b4b4) Tb4b4b4=> T79c0ff0Tb4b4b4,
Te6edf3writeTff7b72: Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3posTb4b4b4) Tb4b4b4=> Te6edf3lengthTb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3mkdevTb4b4b4(Ta5d6ff"/dev/null"Tb4b4b4, Te6edf3FSTb4b4b4.Te6edf3makedevTb4b4b4(T79c0ff1Tb4b4b4, T79c0ff3Tb4b4b4)Tb4b4b4)Tb4b4b4;
T8b949e// setup /dev/tty and /dev/tty1
T8b949e// stderr needs to print output using err() rather than out()
T8b949e// so we register a second tty just for it.
Te6edf3TTYTb4b4b4.Te6edf3registerTb4b4b4(Te6edf3FSTb4b4b4.Te6edf3makedevTb4b4b4(T79c0ff5Tb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4, Te6edf3TTYTb4b4b4.Te6edf3default_tty_opsTb4b4b4)Tb4b4b4;
Te6edf3TTYTb4b4b4.Te6edf3registerTb4b4b4(Te6edf3FSTb4b4b4.Te6edf3makedevTb4b4b4(T79c0ff6Tb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4, Te6edf3TTYTb4b4b4.Te6edf3default_tty1_opsTb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3mkdevTb4b4b4(Ta5d6ff"/dev/tty"Tb4b4b4, Te6edf3FSTb4b4b4.Te6edf3makedevTb4b4b4(T79c0ff5Tb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3mkdevTb4b4b4(Ta5d6ff"/dev/tty1"Tb4b4b4, Te6edf3FSTb4b4b4.Te6edf3makedevTb4b4b4(T79c0ff6Tb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4)Tb4b4b4;
T8b949e// setup /dev/[u]random
Tff7b72var Te6edf3random_device Tff7b72= Te6edf3getRandomDeviceTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3createDeviceTb4b4b4(Ta5d6ff"/dev"Tb4b4b4, Ta5d6ff"random"Tb4b4b4, Te6edf3random_deviceTb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3createDeviceTb4b4b4(Ta5d6ff"/dev"Tb4b4b4, Ta5d6ff"urandom"Tb4b4b4, Te6edf3random_deviceTb4b4b4)Tb4b4b4;
T8b949e// we're not going to emulate the actual shm device,
T8b949e// just create the tmp dirs that reside in it commonly
Te6edf3FSTb4b4b4.Te6edf3mkdirTb4b4b4(Ta5d6ff"/dev/shm"Tb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3mkdirTb4b4b4(Ta5d6ff"/dev/shm/tmp"Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3createSpecialDirectoriesTff7b72: Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
T8b949e// create /proc/self/fd which allows /proc/self/fd/6 => readlink gives the
T8b949e// name of the stream for fd 6 (see test_unistd_ttyname)
Te6edf3FSTb4b4b4.Te6edf3mkdirTb4b4b4(Ta5d6ff"/proc"Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3proc_self Tff7b72= Te6edf3FSTb4b4b4.Te6edf3mkdirTb4b4b4(Ta5d6ff"/proc/self"Tb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3mkdirTb4b4b4(Ta5d6ff"/proc/self/fd"Tb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3mountTb4b4b4(
Tb4b4b4{
Te6edf3mountTff7b72: Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3node Tff7b72= Te6edf3FSTb4b4b4.Te6edf3createNodeTb4b4b4(Te6edf3proc_selfTb4b4b4, Ta5d6ff"fd"Tb4b4b4, T79c0ff16384 Tff7b72| T79c0ff511 T8b949e/* 0777 */Tb4b4b4, T79c0ff73Tb4b4b4)Tb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3node_ops Tff7b72= Tb4b4b4{
Te6edf3lookupTff7b72: Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3fd Tff7b72= Tff7b72+Te6edf3nameTb4b4b4;
Tff7b72var Te6edf3stream Tff7b72= Te6edf3FSTb4b4b4.Te6edf3getStreamTb4b4b4(Te6edf3fdTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4) Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff8Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3ret Tff7b72= Tb4b4b4{
Te6edf3parentTff7b72: Tff7b72nullTb4b4b4,
Te6edf3mountTff7b72: Tb4b4b4{ Te6edf3mountpointTff7b72: Ta5d6ff"fake" Tb4b4b4}Tb4b4b4,
Te6edf3node_opsTff7b72: Tb4b4b4{ Te6edf3readlinkTff7b72: Tb4b4b4(Tb4b4b4) Tb4b4b4=> Te6edf3streamTb4b4b4.Te6edf3path Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Te6edf3retTb4b4b4.Te6edf3parent Tff7b72= Te6edf3retTb4b4b4; T8b949e// make it look like a simple root node
Tff7b72return Te6edf3retTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72return Te6edf3nodeTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4{Tb4b4b4}Tb4b4b4,
Ta5d6ff"/proc/self/fd"
Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3createStandardStreamsTff7b72: Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
T8b949e// TODO deprecate the old functionality of a single
T8b949e// input / output callback and that utilizes FS.createDevice
T8b949e// and instead require a unique set of stream ops
T8b949e// by default, we symlink the standard streams to the
T8b949e// default tty devices. however, if the standard streams
T8b949e// have been overwritten we create a unique device for
T8b949e// them instead.
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"stdin"Tb4b4b4]Tb4b4b4) Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3createDeviceTb4b4b4(Ta5d6ff"/dev"Tb4b4b4, Ta5d6ff"stdin"Tb4b4b4, Te6edf3ModuleTb4b4b4[Ta5d6ff"stdin"Tb4b4b4]Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3symlinkTb4b4b4(Ta5d6ff"/dev/tty"Tb4b4b4, Ta5d6ff"/dev/stdin"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"stdout"Tb4b4b4]Tb4b4b4) Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3createDeviceTb4b4b4(Ta5d6ff"/dev"Tb4b4b4, Ta5d6ff"stdout"Tb4b4b4, Tff7b72nullTb4b4b4, Te6edf3ModuleTb4b4b4[Ta5d6ff"stdout"Tb4b4b4]Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3symlinkTb4b4b4(Ta5d6ff"/dev/tty"Tb4b4b4, Ta5d6ff"/dev/stdout"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"stderr"Tb4b4b4]Tb4b4b4) Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3createDeviceTb4b4b4(Ta5d6ff"/dev"Tb4b4b4, Ta5d6ff"stderr"Tb4b4b4, Tff7b72nullTb4b4b4, Te6edf3ModuleTb4b4b4[Ta5d6ff"stderr"Tb4b4b4]Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3symlinkTb4b4b4(Ta5d6ff"/dev/tty1"Tb4b4b4, Ta5d6ff"/dev/stderr"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e// open default streams for the stdin, stdout and stderr devices
Tff7b72var Te6edf3stdin Tff7b72= Te6edf3FSTb4b4b4.Te6edf3openTb4b4b4(Ta5d6ff"/dev/stdin"Tb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3stdout Tff7b72= Te6edf3FSTb4b4b4.Te6edf3openTb4b4b4(Ta5d6ff"/dev/stdout"Tb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3stderr Tff7b72= Te6edf3FSTb4b4b4.Te6edf3openTb4b4b4(Ta5d6ff"/dev/stderr"Tb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3ensureErrnoErrorTff7b72: Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4) Tff7b72returnTb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3ErrnoError Tff7b72= T8b949e/** @this{Object} */ Tff7b72function Te6edf3ErrnoErrorTb4b4b4(Te6edf3errnoTb4b4b4, Te6edf3nodeTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3node Tff7b72= Te6edf3nodeTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3setErrno Tff7b72= T8b949e/** @this{Object} */ Tff7b72function Tb4b4b4(Te6edf3errnoTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3errno Tff7b72= Te6edf3errnoTb4b4b4;
Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3setErrnoTb4b4b4(Te6edf3errnoTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3message Tff7b72= Ta5d6ff"FS error"Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4.Te6edf3prototype Tff7b72= Tff7b72new Tf85149ErrorTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4.Te6edf3prototypeTb4b4b4.Tff7b72constructor Tff7b72= Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4;
T8b949e// Some errors may happen quite a bit, to avoid overhead we reuse them (and suffer a lack of stack info)
Tb4b4b4[T79c0ff44Tb4b4b4]Tb4b4b4.Te6edf3forEachTb4b4b4(Tb4b4b4(Te6edf3codeTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3genericErrorsTb4b4b4[Te6edf3codeTb4b4b4] Tff7b72= Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(Te6edf3codeTb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3genericErrorsTb4b4b4[Te6edf3codeTb4b4b4]Tb4b4b4.Te6edf3stack Tff7b72= Ta5d6ff"<generic error, no stack>"Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3staticInitTff7b72: Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3ensureErrnoErrorTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3nameTable Tff7b72= Tff7b72new Tffa657ArrayTb4b4b4(T79c0ff4096Tb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3mountTb4b4b4(Te6edf3MEMFSTb4b4b4, Tb4b4b4{Tb4b4b4}Tb4b4b4, Ta5d6ff"/"Tb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3createDefaultDirectoriesTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3createDefaultDevicesTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3createSpecialDirectoriesTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3filesystems Tff7b72= Tb4b4b4{
Te6edf3MEMFSTff7b72: Te6edf3MEMFSTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3initTff7b72: Tb4b4b4(Te6edf3inputTb4b4b4, Te6edf3outputTb4b4b4, Te6edf3errorTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3initTb4b4b4.Te6edf3initialized Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3ensureErrnoErrorTb4b4b4(Tb4b4b4)Tb4b4b4;
T8b949e// Allow Module.stdin etc. to provide defaults, if none explicitly passed to us here
Te6edf3ModuleTb4b4b4[Ta5d6ff"stdin"Tb4b4b4] Tff7b72= Te6edf3input Tff7b72|| Te6edf3ModuleTb4b4b4[Ta5d6ff"stdin"Tb4b4b4]Tb4b4b4;
Te6edf3ModuleTb4b4b4[Ta5d6ff"stdout"Tb4b4b4] Tff7b72= Te6edf3output Tff7b72|| Te6edf3ModuleTb4b4b4[Ta5d6ff"stdout"Tb4b4b4]Tb4b4b4;
Te6edf3ModuleTb4b4b4[Ta5d6ff"stderr"Tb4b4b4] Tff7b72= Te6edf3error Tff7b72|| Te6edf3ModuleTb4b4b4[Ta5d6ff"stderr"Tb4b4b4]Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3createStandardStreamsTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3quitTff7b72: Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3initTb4b4b4.Te6edf3initialized Tff7b72= Tff7b72falseTb4b4b4;
T8b949e// force-flush all streams, so we get musl std streams printed out
T8b949e// close all of our streams
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3FSTb4b4b4.Te6edf3streamsTb4b4b4.Te6edf3lengthTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3stream Tff7b72= Te6edf3FSTb4b4b4.Te6edf3streamsTb4b4b4[Te6edf3iTb4b4b4]Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4) Tb4b4b4{
Tff7b72continueTb4b4b4;
Tb4b4b4}
Te6edf3FSTb4b4b4.Te6edf3closeTb4b4b4(Te6edf3streamTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3getModeTff7b72: Tb4b4b4(Te6edf3canReadTb4b4b4, Te6edf3canWriteTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3mode Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3canReadTb4b4b4) Te6edf3mode Tff7b72|= T79c0ff292 Tff7b72| T79c0ff73Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3canWriteTb4b4b4) Te6edf3mode Tff7b72|= T79c0ff146Tb4b4b4;
Tff7b72return Te6edf3modeTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3findObjectTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3dontResolveLastLinkTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3ret Tff7b72= Te6edf3FSTb4b4b4.Te6edf3analyzePathTb4b4b4(Te6edf3pathTb4b4b4, Te6edf3dontResolveLastLinkTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3retTb4b4b4.Te6edf3existsTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3retTb4b4b4.Te6edf3objectTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3analyzePathTff7b72: Tb4b4b4(Te6edf3pathTb4b4b4, Te6edf3dontResolveLastLinkTb4b4b4) Tb4b4b4=> Tb4b4b4{
T8b949e// operate from within the context of the symlink's target
Tff7b72try Tb4b4b4{
Tff7b72var Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3pathTb4b4b4, Tb4b4b4{ Te6edf3followTff7b72: Tff7b72!Te6edf3dontResolveLastLink Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3path Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3pathTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{Tb4b4b4}
Tff7b72var Te6edf3ret Tff7b72= Tb4b4b4{
Te6edf3isRootTff7b72: Tff7b72falseTb4b4b4,
Te6edf3existsTff7b72: Tff7b72falseTb4b4b4,
Te6edf3errorTff7b72: T79c0ff0Tb4b4b4,
Te6edf3nameTff7b72: Tff7b72nullTb4b4b4,
Te6edf3pathTff7b72: Tff7b72nullTb4b4b4,
Te6edf3objectTff7b72: Tff7b72nullTb4b4b4,
Te6edf3parentExistsTff7b72: Tff7b72falseTb4b4b4,
Te6edf3parentPathTff7b72: Tff7b72nullTb4b4b4,
Te6edf3parentObjectTff7b72: Tff7b72nullTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72var Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3pathTb4b4b4, Tb4b4b4{ Te6edf3parentTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3retTb4b4b4.Te6edf3parentExists Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3retTb4b4b4.Te6edf3parentPath Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3pathTb4b4b4;
Te6edf3retTb4b4b4.Te6edf3parentObject Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Te6edf3retTb4b4b4.Te6edf3name Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3basenameTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4;
Te6edf3lookup Tff7b72= Te6edf3FSTb4b4b4.Te6edf3lookupPathTb4b4b4(Te6edf3pathTb4b4b4, Tb4b4b4{ Te6edf3followTff7b72: Tff7b72!Te6edf3dontResolveLastLink Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3retTb4b4b4.Te6edf3exists Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3retTb4b4b4.Te6edf3path Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3pathTb4b4b4;
Te6edf3retTb4b4b4.Te6edf3object Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4;
Te6edf3retTb4b4b4.Te6edf3name Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3nameTb4b4b4;
Te6edf3retTb4b4b4.Te6edf3isRoot Tff7b72= Te6edf3lookupTb4b4b4.Te6edf3path Tff7b72=== Ta5d6ff"/"Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3retTb4b4b4.Te6edf3error Tff7b72= Te6edf3eTb4b4b4.Te6edf3errnoTb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3retTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3createPathTff7b72: Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3pathTb4b4b4, Te6edf3canReadTb4b4b4, Te6edf3canWriteTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3parent Tff7b72= Tff7b72typeof Te6edf3parent Tff7b72== Ta5d6ff"string" Tff7b72? Te6edf3parent Tff7b72: Te6edf3FSTb4b4b4.Te6edf3getPathTb4b4b4(Te6edf3parentTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3parts Tff7b72= Te6edf3pathTb4b4b4.Te6edf3splitTb4b4b4(Ta5d6ff"/"Tb4b4b4)Tb4b4b4.Te6edf3reverseTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72while Tb4b4b4(Te6edf3partsTb4b4b4.Te6edf3lengthTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3part Tff7b72= Te6edf3partsTb4b4b4.Te6edf3popTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3partTb4b4b4) Tff7b72continueTb4b4b4;
Tff7b72var Te6edf3current Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3join2Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3partTb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3mkdirTb4b4b4(Te6edf3currentTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
T8b949e// ignore EEXIST
Tb4b4b4}
Te6edf3parent Tff7b72= Te6edf3currentTb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3currentTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3createFileTff7b72: Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3propertiesTb4b4b4, Te6edf3canReadTb4b4b4, Te6edf3canWriteTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3path Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3join2Tb4b4b4(Tff7b72typeof Te6edf3parent Tff7b72== Ta5d6ff"string" Tff7b72? Te6edf3parent Tff7b72: Te6edf3FSTb4b4b4.Te6edf3getPathTb4b4b4(Te6edf3parentTb4b4b4)Tb4b4b4, Te6edf3nameTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3mode Tff7b72= Te6edf3FSTb4b4b4.Te6edf3getModeTb4b4b4(Te6edf3canReadTb4b4b4, Te6edf3canWriteTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3FSTb4b4b4.Te6edf3createTb4b4b4(Te6edf3pathTb4b4b4, Te6edf3modeTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3createDataFileTff7b72: Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3dataTb4b4b4, Te6edf3canReadTb4b4b4, Te6edf3canWriteTb4b4b4, Te6edf3canOwnTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3path Tff7b72= Te6edf3nameTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3parentTb4b4b4) Tb4b4b4{
Te6edf3parent Tff7b72= Tff7b72typeof Te6edf3parent Tff7b72== Ta5d6ff"string" Tff7b72? Te6edf3parent Tff7b72: Te6edf3FSTb4b4b4.Te6edf3getPathTb4b4b4(Te6edf3parentTb4b4b4)Tb4b4b4;
Te6edf3path Tff7b72= Te6edf3name Tff7b72? Te6edf3PATHTb4b4b4.Te6edf3join2Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4) Tff7b72: Te6edf3parentTb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3mode Tff7b72= Te6edf3FSTb4b4b4.Te6edf3getModeTb4b4b4(Te6edf3canReadTb4b4b4, Te6edf3canWriteTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3node Tff7b72= Te6edf3FSTb4b4b4.Te6edf3createTb4b4b4(Te6edf3pathTb4b4b4, Te6edf3modeTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3dataTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3data Tff7b72== Ta5d6ff"string"Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3arr Tff7b72= Tff7b72new Tffa657ArrayTb4b4b4(Te6edf3dataTb4b4b4.Te6edf3lengthTb4b4b4)Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= T79c0ff0Tb4b4b4, Te6edf3len Tff7b72= Te6edf3dataTb4b4b4.Te6edf3lengthTb4b4b4; Te6edf3i Tff7b72< Te6edf3lenTb4b4b4; Tff7b72++Te6edf3iTb4b4b4) Te6edf3arrTb4b4b4[Te6edf3iTb4b4b4] Tff7b72= Te6edf3dataTb4b4b4.Te6edf3charCodeAtTb4b4b4(Te6edf3iTb4b4b4)Tb4b4b4;
Te6edf3data Tff7b72= Te6edf3arrTb4b4b4;
Tb4b4b4}
T8b949e// make sure we can write to the file
Te6edf3FSTb4b4b4.Te6edf3chmodTb4b4b4(Te6edf3nodeTb4b4b4, Te6edf3mode Tff7b72| T79c0ff146Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3stream Tff7b72= Te6edf3FSTb4b4b4.Te6edf3openTb4b4b4(Te6edf3nodeTb4b4b4, T79c0ff577Tb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3writeTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3dataTb4b4b4, T79c0ff0Tb4b4b4, Te6edf3dataTb4b4b4.Te6edf3lengthTb4b4b4, T79c0ff0Tb4b4b4, Te6edf3canOwnTb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3closeTb4b4b4(Te6edf3streamTb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3chmodTb4b4b4(Te6edf3nodeTb4b4b4, Te6edf3modeTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3nodeTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3createDeviceTff7b72: Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3inputTb4b4b4, Te6edf3outputTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3path Tff7b72= Te6edf3PATHTb4b4b4.Te6edf3join2Tb4b4b4(Tff7b72typeof Te6edf3parent Tff7b72== Ta5d6ff"string" Tff7b72? Te6edf3parent Tff7b72: Te6edf3FSTb4b4b4.Te6edf3getPathTb4b4b4(Te6edf3parentTb4b4b4)Tb4b4b4, Te6edf3nameTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3mode Tff7b72= Te6edf3FSTb4b4b4.Te6edf3getModeTb4b4b4(Tff7b72!Tff7b72!Te6edf3inputTb4b4b4, Tff7b72!Tff7b72!Te6edf3outputTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3FSTb4b4b4.Te6edf3createDeviceTb4b4b4.Te6edf3majorTb4b4b4) Te6edf3FSTb4b4b4.Te6edf3createDeviceTb4b4b4.Te6edf3major Tff7b72= T79c0ff64Tb4b4b4;
Tff7b72var Te6edf3dev Tff7b72= Te6edf3FSTb4b4b4.Te6edf3makedevTb4b4b4(Te6edf3FSTb4b4b4.Te6edf3createDeviceTb4b4b4.Te6edf3majorTff7b72++Tb4b4b4, T79c0ff0Tb4b4b4)Tb4b4b4;
T8b949e// Create a fake device that a set of stream ops to emulate
T8b949e// the old behavior.
Te6edf3FSTb4b4b4.Te6edf3registerDeviceTb4b4b4(Te6edf3devTb4b4b4, Tb4b4b4{
Te6edf3openTff7b72: Tb4b4b4(Te6edf3streamTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3streamTb4b4b4.Te6edf3seekable Tff7b72= Tff7b72falseTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3closeTff7b72: Tb4b4b4(Te6edf3streamTb4b4b4) Tb4b4b4=> Tb4b4b4{
T8b949e// flush any pending line data
Tff7b72if Tb4b4b4(Te6edf3output Tff7b72&& Te6edf3outputTb4b4b4.Te6edf3buffer Tff7b72&& Te6edf3outputTb4b4b4.Te6edf3bufferTb4b4b4.Te6edf3lengthTb4b4b4) Tb4b4b4{
Te6edf3outputTb4b4b4(T79c0ff10Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3readTff7b72: Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3pos T8b949e/* ignored */Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3bytesRead Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3lengthTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3resultTb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3result Tff7b72= Te6edf3inputTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff29Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3result Tff7b72=== Tff7b72undefined Tff7b72&& Te6edf3bytesRead Tff7b72=== T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff6Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3result Tff7b72=== Tff7b72null Tff7b72|| Te6edf3result Tff7b72=== Tff7b72undefinedTb4b4b4) Tff7b72breakTb4b4b4;
Te6edf3bytesReadTff7b72++Tb4b4b4;
Te6edf3bufferTb4b4b4[Te6edf3offset Tff7b72+ Te6edf3iTb4b4b4] Tff7b72= Te6edf3resultTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3bytesReadTb4b4b4) Tb4b4b4{
Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3timestamp Tff7b72= Tffa657DateTb4b4b4.Te6edf3nowTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3bytesReadTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3writeTff7b72: Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3posTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3lengthTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3outputTb4b4b4(Te6edf3bufferTb4b4b4[Te6edf3offset Tff7b72+ Te6edf3iTb4b4b4]Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff29Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3lengthTb4b4b4) Tb4b4b4{
Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3timestamp Tff7b72= Tffa657DateTb4b4b4.Te6edf3nowTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3iTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3FSTb4b4b4.Te6edf3mkdevTb4b4b4(Te6edf3pathTb4b4b4, Te6edf3modeTb4b4b4, Te6edf3devTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3forceLoadFileTff7b72: Tb4b4b4(Te6edf3objTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3objTb4b4b4.Te6edf3isDevice Tff7b72|| Te6edf3objTb4b4b4.Te6edf3isFolder Tff7b72|| Te6edf3objTb4b4b4.Te6edf3link Tff7b72|| Te6edf3objTb4b4b4.Te6edf3contentsTb4b4b4) Tff7b72return Tff7b72trueTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3XMLHttpRequest Tff7b72!= Ta5d6ff"undefined"Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(
Ta5d6ff"Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread."
Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3read_Tb4b4b4) Tb4b4b4{
T8b949e// Command-line.
Tff7b72try Tb4b4b4{
T8b949e// WARNING: Can't read binary files in V8's d8 or tracemonkey's js, as
T8b949e// read() will try to parse UTF8.
Te6edf3objTb4b4b4.Te6edf3contents Tff7b72= Te6edf3intArrayFromStringTb4b4b4(Te6edf3read_Tb4b4b4(Te6edf3objTb4b4b4.Te6edf3urlTb4b4b4)Tb4b4b4, Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3objTb4b4b4.Te6edf3usedBytes Tff7b72= Te6edf3objTb4b4b4.Te6edf3contentsTb4b4b4.Te6edf3lengthTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff29Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"Cannot load without read() or XMLHttpRequest."Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3createLazyFileTff7b72: Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3urlTb4b4b4, Te6edf3canReadTb4b4b4, Te6edf3canWriteTb4b4b4) Tb4b4b4=> Tb4b4b4{
T8b949e// Lazy chunked Uint8Array (implements get and length from Uint8Array). Actual getting is abstracted away for eventual reuse.
T8b949e/** @constructor */
Tff7b72function Te6edf3LazyUint8ArrayTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3lengthKnown Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3chunks Tff7b72= Tb4b4b4[Tb4b4b4]Tb4b4b4; T8b949e// Loaded chunks. Index is the chunk number
Tb4b4b4}
Te6edf3LazyUint8ArrayTb4b4b4.Te6edf3prototypeTb4b4b4.Te6edf3get Tff7b72= T8b949e/** @this{Object} */ Tff7b72function Te6edf3LazyUint8Array_getTb4b4b4(Te6edf3idxTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3idx Tff7b72> Tff7b72thisTb4b4b4.Te6edf3length Tff7b72- T79c0ff1 Tff7b72|| Te6edf3idx Tff7b72< T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72undefinedTb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3chunkOffset Tff7b72= Te6edf3idx Tff7b72% Tff7b72thisTb4b4b4.Te6edf3chunkSizeTb4b4b4;
Tff7b72var Te6edf3chunkNum Tff7b72= Tb4b4b4(Te6edf3idx Tff7b72/ Tff7b72thisTb4b4b4.Te6edf3chunkSizeTb4b4b4) Tff7b72| T79c0ff0Tb4b4b4;
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3getterTb4b4b4(Te6edf3chunkNumTb4b4b4)Tb4b4b4[Te6edf3chunkOffsetTb4b4b4]Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3LazyUint8ArrayTb4b4b4.Te6edf3prototypeTb4b4b4.Te6edf3setDataGetter Tff7b72= Tff7b72function Te6edf3LazyUint8Array_setDataGetterTb4b4b4(Te6edf3getterTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3getter Tff7b72= Te6edf3getterTb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3LazyUint8ArrayTb4b4b4.Te6edf3prototypeTb4b4b4.Te6edf3cacheLength Tff7b72= Tff7b72function Te6edf3LazyUint8Array_cacheLengthTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// Find length
Tff7b72var Te6edf3xhr Tff7b72= Tff7b72new Te6edf3XMLHttpRequestTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3xhrTb4b4b4.Te6edf3openTb4b4b4(Ta5d6ff"HEAD"Tb4b4b4, Te6edf3urlTb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4;
Te6edf3xhrTb4b4b4.Te6edf3sendTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Tb4b4b4(Tb4b4b4(Te6edf3xhrTb4b4b4.Te6edf3status Tff7b72>= T79c0ff200 Tff7b72&& Te6edf3xhrTb4b4b4.Te6edf3status Tff7b72< T79c0ff300Tb4b4b4) Tff7b72|| Te6edf3xhrTb4b4b4.Te6edf3status Tff7b72=== T79c0ff304Tb4b4b4)Tb4b4b4)
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"Couldn't load " Tff7b72+ Te6edf3url Tff7b72+ Ta5d6ff". Status: " Tff7b72+ Te6edf3xhrTb4b4b4.Te6edf3statusTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3datalength Tff7b72= Tffa657NumberTb4b4b4(Te6edf3xhrTb4b4b4.Te6edf3getResponseHeaderTb4b4b4(Ta5d6ff"Content-length"Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3headerTb4b4b4;
Tff7b72var Te6edf3hasByteServing Tff7b72= Tb4b4b4(Te6edf3header Tff7b72= Te6edf3xhrTb4b4b4.Te6edf3getResponseHeaderTb4b4b4(Ta5d6ff"Accept-Ranges"Tb4b4b4)Tb4b4b4) Tff7b72&& Te6edf3header Tff7b72=== Ta5d6ff"bytes"Tb4b4b4;
Tff7b72var Te6edf3usesGzip Tff7b72= Tb4b4b4(Te6edf3header Tff7b72= Te6edf3xhrTb4b4b4.Te6edf3getResponseHeaderTb4b4b4(Ta5d6ff"Content-Encoding"Tb4b4b4)Tb4b4b4) Tff7b72&& Te6edf3header Tff7b72=== Ta5d6ff"gzip"Tb4b4b4;
Tff7b72var Te6edf3chunkSize Tff7b72= T79c0ff1024 Tff7b72* T79c0ff1024Tb4b4b4; T8b949e// Chunk size in bytes
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3hasByteServingTb4b4b4) Te6edf3chunkSize Tff7b72= Te6edf3datalengthTb4b4b4;
T8b949e// Function to get a range from the remote URL.
Tff7b72var Te6edf3doXHR Tff7b72= Tb4b4b4(Tff7b72fromTb4b4b4, Te6edf3toTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72from Tff7b72> Te6edf3toTb4b4b4)
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"invalid range (" Tff7b72+ Tff7b72from Tff7b72+ Ta5d6ff", " Tff7b72+ Te6edf3to Tff7b72+ Ta5d6ff") or no bytes requested!"Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3to Tff7b72> Te6edf3datalength Tff7b72- T79c0ff1Tb4b4b4)
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"only " Tff7b72+ Te6edf3datalength Tff7b72+ Ta5d6ff" bytes available! programmer error!"Tb4b4b4)Tb4b4b4;
T8b949e// TODO: Use mozResponseArrayBuffer, responseStream, etc. if available.
Tff7b72var Te6edf3xhr Tff7b72= Tff7b72new Te6edf3XMLHttpRequestTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3xhrTb4b4b4.Te6edf3openTb4b4b4(Ta5d6ff"GET"Tb4b4b4, Te6edf3urlTb4b4b4, Tff7b72falseTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3datalength Tff7b72!== Te6edf3chunkSizeTb4b4b4) Te6edf3xhrTb4b4b4.Te6edf3setRequestHeaderTb4b4b4(Ta5d6ff"Range"Tb4b4b4, Ta5d6ff"bytes=" Tff7b72+ Tff7b72from Tff7b72+ Ta5d6ff"-" Tff7b72+ Te6edf3toTb4b4b4)Tb4b4b4;
T8b949e// Some hints to the browser that we want binary data.
Te6edf3xhrTb4b4b4.Te6edf3responseType Tff7b72= Ta5d6ff"arraybuffer"Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3xhrTb4b4b4.Te6edf3overrideMimeTypeTb4b4b4) Tb4b4b4{
Te6edf3xhrTb4b4b4.Te6edf3overrideMimeTypeTb4b4b4(Ta5d6ff"text/plain; charset=x-user-defined"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3xhrTb4b4b4.Te6edf3sendTb4b4b4(Tff7b72nullTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Tb4b4b4(Tb4b4b4(Te6edf3xhrTb4b4b4.Te6edf3status Tff7b72>= T79c0ff200 Tff7b72&& Te6edf3xhrTb4b4b4.Te6edf3status Tff7b72< T79c0ff300Tb4b4b4) Tff7b72|| Te6edf3xhrTb4b4b4.Te6edf3status Tff7b72=== T79c0ff304Tb4b4b4)Tb4b4b4)
Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"Couldn't load " Tff7b72+ Te6edf3url Tff7b72+ Ta5d6ff". Status: " Tff7b72+ Te6edf3xhrTb4b4b4.Te6edf3statusTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3xhrTb4b4b4.Te6edf3response Tff7b72!== Tff7b72undefinedTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72new Tffa657Uint8ArrayTb4b4b4(T8b949e/** @type{Array<number>} */ Tb4b4b4(Te6edf3xhrTb4b4b4.Te6edf3response Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3intArrayFromStringTb4b4b4(Te6edf3xhrTb4b4b4.Te6edf3responseText Tff7b72|| Ta5d6ff""Tb4b4b4, Tff7b72trueTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Tff7b72var Te6edf3lazyArray Tff7b72= Tff7b72thisTb4b4b4;
Te6edf3lazyArrayTb4b4b4.Te6edf3setDataGetterTb4b4b4(Tb4b4b4(Te6edf3chunkNumTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3start Tff7b72= Te6edf3chunkNum Tff7b72* Te6edf3chunkSizeTb4b4b4;
Tff7b72var Te6edf3end Tff7b72= Tb4b4b4(Te6edf3chunkNum Tff7b72+ T79c0ff1Tb4b4b4) Tff7b72* Te6edf3chunkSize Tff7b72- T79c0ff1Tb4b4b4; T8b949e// including this byte
Te6edf3end Tff7b72= Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Te6edf3endTb4b4b4, Te6edf3datalength Tff7b72- T79c0ff1Tb4b4b4)Tb4b4b4; T8b949e// if datalength-1 is selected, this is the last block
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3lazyArrayTb4b4b4.Te6edf3chunksTb4b4b4[Te6edf3chunkNumTb4b4b4] Tff7b72== Ta5d6ff"undefined"Tb4b4b4) Tb4b4b4{
Te6edf3lazyArrayTb4b4b4.Te6edf3chunksTb4b4b4[Te6edf3chunkNumTb4b4b4] Tff7b72= Te6edf3doXHRTb4b4b4(Te6edf3startTb4b4b4, Te6edf3endTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3lazyArrayTb4b4b4.Te6edf3chunksTb4b4b4[Te6edf3chunkNumTb4b4b4] Tff7b72== Ta5d6ff"undefined"Tb4b4b4) Tff7b72throw Tff7b72new Tf85149ErrorTb4b4b4(Ta5d6ff"doXHR failed!"Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3lazyArrayTb4b4b4.Te6edf3chunksTb4b4b4[Te6edf3chunkNumTb4b4b4]Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3usesGzip Tff7b72|| Tff7b72!Te6edf3datalengthTb4b4b4) Tb4b4b4{
T8b949e// if the server uses gzip or doesn't supply the length, we have to download the whole file to get the (uncompressed) length
Te6edf3chunkSize Tff7b72= Te6edf3datalength Tff7b72= T79c0ff1Tb4b4b4; T8b949e// this will force getter(0)/doXHR do download the whole file
Te6edf3datalength Tff7b72= Tff7b72thisTb4b4b4.Te6edf3getterTb4b4b4(T79c0ff0Tb4b4b4)Tb4b4b4.Te6edf3lengthTb4b4b4;
Te6edf3chunkSize Tff7b72= Te6edf3datalengthTb4b4b4;
Te6edf3outTb4b4b4(Ta5d6ff"LazyFiles on gzip forces download of the whole file when length is accessed"Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3_length Tff7b72= Te6edf3datalengthTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3_chunkSize Tff7b72= Te6edf3chunkSizeTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3lengthKnown Tff7b72= Tff7b72trueTb4b4b4;
Tb4b4b4}Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3XMLHttpRequest Tff7b72!= Ta5d6ff"undefined"Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3ENVIRONMENT_IS_WORKERTb4b4b4)
Tff7b72throw Ta5d6ff"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc"Tb4b4b4;
Tff7b72var Te6edf3lazyArray Tff7b72= Tff7b72new Te6edf3LazyUint8ArrayTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657ObjectTb4b4b4.Te6edf3definePropertiesTb4b4b4(Te6edf3lazyArrayTb4b4b4, Tb4b4b4{
Te6edf3lengthTff7b72: Tb4b4b4{
Te6edf3getTff7b72: T8b949e/** @this{Object} */ Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3lengthKnownTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3cacheLengthTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3_lengthTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3chunkSizeTff7b72: Tb4b4b4{
Te6edf3getTff7b72: T8b949e/** @this{Object} */ Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3lengthKnownTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3cacheLengthTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3_chunkSizeTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3properties Tff7b72= Tb4b4b4{ Te6edf3isDeviceTff7b72: Tff7b72falseTb4b4b4, Te6edf3contentsTff7b72: Te6edf3lazyArray Tb4b4b4}Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72var Te6edf3properties Tff7b72= Tb4b4b4{ Te6edf3isDeviceTff7b72: Tff7b72falseTb4b4b4, Te6edf3urlTff7b72: Te6edf3url Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3node Tff7b72= Te6edf3FSTb4b4b4.Te6edf3createFileTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3propertiesTb4b4b4, Te6edf3canReadTb4b4b4, Te6edf3canWriteTb4b4b4)Tb4b4b4;
T8b949e// This is a total hack, but I want to get this lazy file code out of the
T8b949e// core of MEMFS. If we want to keep this lazy file concept I feel it should
T8b949e// be its own thin LAZYFS proxying calls to MEMFS.
Tff7b72if Tb4b4b4(Te6edf3propertiesTb4b4b4.Te6edf3contentsTb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3contents Tff7b72= Te6edf3propertiesTb4b4b4.Te6edf3contentsTb4b4b4;
Tb4b4b4} Tff7b72else Tff7b72if Tb4b4b4(Te6edf3propertiesTb4b4b4.Te6edf3urlTb4b4b4) Tb4b4b4{
Te6edf3nodeTb4b4b4.Te6edf3contents Tff7b72= Tff7b72nullTb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3url Tff7b72= Te6edf3propertiesTb4b4b4.Te6edf3urlTb4b4b4;
Tb4b4b4}
T8b949e// Add a function that defers querying the file size until it is asked the first time.
Tffa657ObjectTb4b4b4.Te6edf3definePropertiesTb4b4b4(Te6edf3nodeTb4b4b4, Tb4b4b4{
Te6edf3usedBytesTff7b72: Tb4b4b4{
Te6edf3getTff7b72: T8b949e/** @this {FSNode} */ Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72thisTb4b4b4.Te6edf3contentsTb4b4b4.Te6edf3lengthTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
T8b949e// override each stream op with one that tries to force load the lazy file first
Tff7b72var Te6edf3stream_ops Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72var Te6edf3keys Tff7b72= Tffa657ObjectTb4b4b4.Te6edf3keysTb4b4b4(Te6edf3nodeTb4b4b4.Te6edf3stream_opsTb4b4b4)Tb4b4b4;
Te6edf3keysTb4b4b4.Te6edf3forEachTb4b4b4(Tb4b4b4(Te6edf3keyTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3fn Tff7b72= Te6edf3nodeTb4b4b4.Te6edf3stream_opsTb4b4b4[Te6edf3keyTb4b4b4]Tb4b4b4;
Te6edf3stream_opsTb4b4b4[Te6edf3keyTb4b4b4] Tff7b72= Tff7b72function Te6edf3forceLoadLazyFileTb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3forceLoadFileTb4b4b4(Te6edf3nodeTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3fnTb4b4b4.Te6edf3applyTb4b4b4(Tff7b72nullTb4b4b4, Te6edf3argumentsTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72function Te6edf3writeChunksTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3positionTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3contents Tff7b72= Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3contentsTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3position Tff7b72>= Te6edf3contentsTb4b4b4.Te6edf3lengthTb4b4b4) Tff7b72return T79c0ff0Tb4b4b4;
Tff7b72var Te6edf3size Tff7b72= Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Te6edf3contentsTb4b4b4.Te6edf3length Tff7b72- Te6edf3positionTb4b4b4, Te6edf3lengthTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3contentsTb4b4b4.Te6edf3sliceTb4b4b4) Tb4b4b4{
T8b949e// normal array
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3sizeTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Te6edf3bufferTb4b4b4[Te6edf3offset Tff7b72+ Te6edf3iTb4b4b4] Tff7b72= Te6edf3contentsTb4b4b4[Te6edf3position Tff7b72+ Te6edf3iTb4b4b4]Tb4b4b4;
Tb4b4b4}
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3sizeTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
T8b949e// LazyUint8Array from sync binary XHR
Te6edf3bufferTb4b4b4[Te6edf3offset Tff7b72+ Te6edf3iTb4b4b4] Tff7b72= Te6edf3contentsTb4b4b4.Te6edf3getTb4b4b4(Te6edf3position Tff7b72+ Te6edf3iTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Te6edf3sizeTb4b4b4;
Tb4b4b4}
T8b949e// use a custom read function
Te6edf3stream_opsTb4b4b4.Te6edf3read Tff7b72= Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3positionTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3forceLoadFileTb4b4b4(Te6edf3nodeTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3writeChunksTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3positionTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
T8b949e// use a custom mmap function
Te6edf3stream_opsTb4b4b4.Te6edf3mmap Tff7b72= Tb4b4b4(Te6edf3streamTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3positionTb4b4b4, Te6edf3protTb4b4b4, Te6edf3flagsTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3forceLoadFileTb4b4b4(Te6edf3nodeTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3ptr Tff7b72= Te6edf3mmapAllocTb4b4b4(Te6edf3lengthTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3ptrTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff48Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3writeChunksTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3HEAP8Tb4b4b4, Te6edf3ptrTb4b4b4, Te6edf3lengthTb4b4b4, Te6edf3positionTb4b4b4)Tb4b4b4;
Tff7b72return Tb4b4b4{ Te6edf3ptrTff7b72: Te6edf3ptrTb4b4b4, Te6edf3allocatedTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3nodeTb4b4b4.Te6edf3stream_ops Tff7b72= Te6edf3stream_opsTb4b4b4;
Tff7b72return Te6edf3nodeTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3createPreloadedFileTff7b72: Tb4b4b4(
Te6edf3parentTb4b4b4,
Te6edf3nameTb4b4b4,
Te6edf3urlTb4b4b4,
Te6edf3canReadTb4b4b4,
Te6edf3canWriteTb4b4b4,
Te6edf3onloadTb4b4b4,
Te6edf3onerrorTb4b4b4,
Te6edf3dontCreateFileTb4b4b4,
Te6edf3canOwnTb4b4b4,
Te6edf3preFinish
Tb4b4b4) Tb4b4b4=> Tb4b4b4{
T8b949e// TODO we should allow people to just pass in a complete filename instead
T8b949e// of parent and name being that we just join them anyways
Tff7b72var Te6edf3fullname Tff7b72= Te6edf3name Tff7b72? Te6edf3PATH_FSTb4b4b4.Te6edf3resolveTb4b4b4(Te6edf3PATHTb4b4b4.Te6edf3join2Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4)Tb4b4b4) Tff7b72: Te6edf3parentTb4b4b4;
Tff7b72var Te6edf3dep Tff7b72= Te6edf3getUniqueRunDependencyTb4b4b4(Ta5d6ff"cp " Tff7b72+ Te6edf3fullnameTb4b4b4)Tb4b4b4; T8b949e// might have several active requests for the same fullname
Tff7b72function Te6edf3processDataTb4b4b4(Te6edf3byteArrayTb4b4b4) Tb4b4b4{
Tff7b72function Te6edf3finishTb4b4b4(Te6edf3byteArrayTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3preFinishTb4b4b4) Te6edf3preFinishTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3dontCreateFileTb4b4b4) Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3createDataFileTb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3byteArrayTb4b4b4, Te6edf3canReadTb4b4b4, Te6edf3canWriteTb4b4b4, Te6edf3canOwnTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3onloadTb4b4b4) Te6edf3onloadTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3removeRunDependencyTb4b4b4(Te6edf3depTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(
Te6edf3BrowserTb4b4b4.Te6edf3handledByPreloadPluginTb4b4b4(Te6edf3byteArrayTb4b4b4, Te6edf3fullnameTb4b4b4, Te6edf3finishTb4b4b4, Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3onerrorTb4b4b4) Te6edf3onerrorTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3removeRunDependencyTb4b4b4(Te6edf3depTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)
Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3finishTb4b4b4(Te6edf3byteArrayTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3addRunDependencyTb4b4b4(Te6edf3depTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3url Tff7b72== Ta5d6ff"string"Tb4b4b4) Tb4b4b4{
Te6edf3asyncLoadTb4b4b4(Te6edf3urlTb4b4b4, Tb4b4b4(Te6edf3byteArrayTb4b4b4) Tb4b4b4=> Te6edf3processDataTb4b4b4(Te6edf3byteArrayTb4b4b4)Tb4b4b4, Te6edf3onerrorTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3processDataTb4b4b4(Te6edf3urlTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4,
Te6edf3indexedDBTff7b72: Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Tb4b4b4(
Tffa657windowTb4b4b4.Te6edf3indexedDB Tff7b72||
Tffa657windowTb4b4b4.Te6edf3mozIndexedDB Tff7b72||
Tffa657windowTb4b4b4.Te6edf3webkitIndexedDB Tff7b72||
Tffa657windowTb4b4b4.Te6edf3msIndexedDB Tff7b72||
Tffa657globalThisTb4b4b4.Te6edf3indexedDB
Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3DB_NAMETff7b72: Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72return Ta5d6ff"EM_FS_" Tff7b72+ Tffa657windowTb4b4b4.Te6edf3locationTb4b4b4.Te6edf3pathnameTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3DB_VERSIONTff7b72: T79c0ff20Tb4b4b4,
Te6edf3DB_STORE_NAMETff7b72: Ta5d6ff"FILE_DATA"Tb4b4b4,
Te6edf3saveFilesToDBTff7b72: Tb4b4b4(Te6edf3pathsTb4b4b4, Te6edf3onloadTb4b4b4, Te6edf3onerrorTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3onload Tff7b72= Te6edf3onload Tff7b72|| Tb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3onerror Tff7b72= Te6edf3onerror Tff7b72|| Tb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3indexedDB Tff7b72= Te6edf3FSTb4b4b4.Te6edf3indexedDBTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72var Te6edf3openRequest Tff7b72= Te6edf3indexedDBTb4b4b4.Te6edf3openTb4b4b4(Te6edf3FSTb4b4b4.Te6edf3DB_NAMETb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3FSTb4b4b4.Te6edf3DB_VERSIONTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3onerrorTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3openRequestTb4b4b4.Te6edf3onupgradeneeded Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3outTb4b4b4(Ta5d6ff"creating db"Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3db Tff7b72= Te6edf3openRequestTb4b4b4.Te6edf3resultTb4b4b4;
Te6edf3dbTb4b4b4.Te6edf3createObjectStoreTb4b4b4(Te6edf3FSTb4b4b4.Te6edf3DB_STORE_NAMETb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3openRequestTb4b4b4.Te6edf3onsuccess Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3db Tff7b72= Te6edf3openRequestTb4b4b4.Te6edf3resultTb4b4b4;
Tff7b72var Te6edf3transaction Tff7b72= Te6edf3dbTb4b4b4.Te6edf3transactionTb4b4b4(Tb4b4b4[Te6edf3FSTb4b4b4.Te6edf3DB_STORE_NAMETb4b4b4]Tb4b4b4, Ta5d6ff"readwrite"Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3files Tff7b72= Te6edf3transactionTb4b4b4.Te6edf3objectStoreTb4b4b4(Te6edf3FSTb4b4b4.Te6edf3DB_STORE_NAMETb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3ok Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3fail Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3total Tff7b72= Te6edf3pathsTb4b4b4.Te6edf3lengthTb4b4b4;
Tff7b72function Te6edf3finishTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3fail Tff7b72== T79c0ff0Tb4b4b4) Te6edf3onloadTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72else Te6edf3onerrorTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3pathsTb4b4b4.Te6edf3forEachTb4b4b4(Tb4b4b4(Te6edf3pathTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3putRequest Tff7b72= Te6edf3filesTb4b4b4.Te6edf3putTb4b4b4(Te6edf3FSTb4b4b4.Te6edf3analyzePathTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4.Te6edf3objectTb4b4b4.Te6edf3contentsTb4b4b4, Te6edf3pathTb4b4b4)Tb4b4b4;
Te6edf3putRequestTb4b4b4.Te6edf3onsuccess Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3okTff7b72++Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3ok Tff7b72+ Te6edf3fail Tff7b72== Te6edf3totalTb4b4b4) Te6edf3finishTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3putRequestTb4b4b4.Te6edf3onerror Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3failTff7b72++Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3ok Tff7b72+ Te6edf3fail Tff7b72== Te6edf3totalTb4b4b4) Te6edf3finishTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3transactionTb4b4b4.Te6edf3onerror Tff7b72= Te6edf3onerrorTb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3openRequestTb4b4b4.Te6edf3onerror Tff7b72= Te6edf3onerrorTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3loadFilesFromDBTff7b72: Tb4b4b4(Te6edf3pathsTb4b4b4, Te6edf3onloadTb4b4b4, Te6edf3onerrorTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3onload Tff7b72= Te6edf3onload Tff7b72|| Tb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3onerror Tff7b72= Te6edf3onerror Tff7b72|| Tb4b4b4(Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3indexedDB Tff7b72= Te6edf3FSTb4b4b4.Te6edf3indexedDBTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72var Te6edf3openRequest Tff7b72= Te6edf3indexedDBTb4b4b4.Te6edf3openTb4b4b4(Te6edf3FSTb4b4b4.Te6edf3DB_NAMETb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3FSTb4b4b4.Te6edf3DB_VERSIONTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3onerrorTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3openRequestTb4b4b4.Te6edf3onupgradeneeded Tff7b72= Te6edf3onerrorTb4b4b4; T8b949e// no database to load from
Te6edf3openRequestTb4b4b4.Te6edf3onsuccess Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3db Tff7b72= Te6edf3openRequestTb4b4b4.Te6edf3resultTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72var Te6edf3transaction Tff7b72= Te6edf3dbTb4b4b4.Te6edf3transactionTb4b4b4(Tb4b4b4[Te6edf3FSTb4b4b4.Te6edf3DB_STORE_NAMETb4b4b4]Tb4b4b4, Ta5d6ff"readonly"Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3onerrorTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3files Tff7b72= Te6edf3transactionTb4b4b4.Te6edf3objectStoreTb4b4b4(Te6edf3FSTb4b4b4.Te6edf3DB_STORE_NAMETb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3ok Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3fail Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3total Tff7b72= Te6edf3pathsTb4b4b4.Te6edf3lengthTb4b4b4;
Tff7b72function Te6edf3finishTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3fail Tff7b72== T79c0ff0Tb4b4b4) Te6edf3onloadTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72else Te6edf3onerrorTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3pathsTb4b4b4.Te6edf3forEachTb4b4b4(Tb4b4b4(Te6edf3pathTb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72var Te6edf3getRequest Tff7b72= Te6edf3filesTb4b4b4.Te6edf3getTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4;
Te6edf3getRequestTb4b4b4.Te6edf3onsuccess Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3FSTb4b4b4.Te6edf3analyzePathTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4.Te6edf3existsTb4b4b4) Tb4b4b4{
Te6edf3FSTb4b4b4.Te6edf3unlinkTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3FSTb4b4b4.Te6edf3createDataFileTb4b4b4(
Te6edf3PATHTb4b4b4.Te6edf3dirnameTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4,
Te6edf3PATHTb4b4b4.Te6edf3basenameTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4,
Te6edf3getRequestTb4b4b4.Te6edf3resultTb4b4b4,
Tff7b72trueTb4b4b4,
Tff7b72trueTb4b4b4,
Tff7b72true
Tb4b4b4)Tb4b4b4;
Te6edf3okTff7b72++Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3ok Tff7b72+ Te6edf3fail Tff7b72== Te6edf3totalTb4b4b4) Te6edf3finishTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3getRequestTb4b4b4.Te6edf3onerror Tff7b72= Tb4b4b4(Tb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3failTff7b72++Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3ok Tff7b72+ Te6edf3fail Tff7b72== Te6edf3totalTb4b4b4) Te6edf3finishTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3transactionTb4b4b4.Te6edf3onerror Tff7b72= Te6edf3onerrorTb4b4b4;
Tb4b4b4}Tb4b4b4;
Te6edf3openRequestTb4b4b4.Te6edf3onerror Tff7b72= Te6edf3onerrorTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72var Te6edf3SYSCALLS Tff7b72= Tb4b4b4{
Te6edf3DEFAULT_POLLMASKTff7b72: T79c0ff5Tb4b4b4,
Te6edf3calculateAtTff7b72: Tff7b72function Tb4b4b4(Te6edf3dirfdTb4b4b4, Te6edf3pathTb4b4b4, Te6edf3allowEmptyTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3PATHTb4b4b4.Te6edf3isAbsTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3pathTb4b4b4;
Tb4b4b4}
T8b949e// relative path
Tff7b72var Te6edf3dirTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3dirfd Tff7b72=== Tff7b72-T79c0ff100Tb4b4b4) Tb4b4b4{
Te6edf3dir Tff7b72= Te6edf3FSTb4b4b4.Te6edf3cwdTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72var Te6edf3dirstream Tff7b72= Te6edf3SYSCALLSTb4b4b4.Te6edf3getStreamFromFDTb4b4b4(Te6edf3dirfdTb4b4b4)Tb4b4b4;
Te6edf3dir Tff7b72= Te6edf3dirstreamTb4b4b4.Te6edf3pathTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3pathTb4b4b4.Te6edf3length Tff7b72== T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3allowEmptyTb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff44Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3dirTb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3PATHTb4b4b4.Te6edf3join2Tb4b4b4(Te6edf3dirTb4b4b4, Te6edf3pathTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3doStatTff7b72: Tff7b72function Tb4b4b4(Te6edf3funcTb4b4b4, Te6edf3pathTb4b4b4, Te6edf3bufTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72var Te6edf3stat Tff7b72= Te6edf3funcTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3e Tff7b72&& Te6edf3eTb4b4b4.Te6edf3node Tff7b72&& Te6edf3PATHTb4b4b4.Te6edf3normalizeTb4b4b4(Te6edf3pathTb4b4b4) Tff7b72!== Te6edf3PATHTb4b4b4.Te6edf3normalizeTb4b4b4(Te6edf3FSTb4b4b4.Te6edf3getPathTb4b4b4(Te6edf3eTb4b4b4.Te6edf3nodeTb4b4b4)Tb4b4b4)Tb4b4b4) Tb4b4b4{
T8b949e// an error occurred while trying to look up the path; we should just report ENOTDIR
Tff7b72return Tff7b72-T79c0ff54Tb4b4b4;
Tb4b4b4}
Tff7b72throw Te6edf3eTb4b4b4;
Tb4b4b4}
Te6edf3HEAP32Tb4b4b4[Te6edf3buf Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3statTb4b4b4.Te6edf3devTb4b4b4;
Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff8Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3statTb4b4b4.Te6edf3inoTb4b4b4;
Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff12Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3statTb4b4b4.Te6edf3modeTb4b4b4;
Te6edf3HEAPU32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff16Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3statTb4b4b4.Te6edf3nlinkTb4b4b4;
Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff20Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3statTb4b4b4.Te6edf3uidTb4b4b4;
Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff24Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3statTb4b4b4.Te6edf3gidTb4b4b4;
Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff28Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3statTb4b4b4.Te6edf3rdevTb4b4b4;
Tb4b4b4(Tb4b4b4(Te6edf3tempI64 Tff7b72= Tb4b4b4[
Te6edf3statTb4b4b4.Te6edf3size Tff7b72>>> T79c0ff0Tb4b4b4,
Tb4b4b4(Tb4b4b4(Te6edf3tempDouble Tff7b72= Te6edf3statTb4b4b4.Te6edf3sizeTb4b4b4)Tb4b4b4,
Tff7b72+Tffa657MathTb4b4b4.Te6edf3absTb4b4b4(Te6edf3tempDoubleTb4b4b4) Tff7b72>= T79c0ff1.0
Tff7b72? Te6edf3tempDouble Tff7b72> T79c0ff0.0
Tff7b72? Tb4b4b4(Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Tff7b72+Tffa657MathTb4b4b4.Te6edf3floorTb4b4b4(Te6edf3tempDouble Tff7b72/ T79c0ff4294967296.0Tb4b4b4)Tb4b4b4, T79c0ff4294967295.0Tb4b4b4) Tff7b72| T79c0ff0Tb4b4b4) Tff7b72>>> T79c0ff0
Tff7b72: Tff7b72~Tff7b72~Tff7b72+Tffa657MathTb4b4b4.Te6edf3ceilTb4b4b4(Tb4b4b4(Te6edf3tempDouble Tff7b72- Tff7b72+Tb4b4b4(Tff7b72~Tff7b72~Te6edf3tempDouble Tff7b72>>> T79c0ff0Tb4b4b4)Tb4b4b4) Tff7b72/ T79c0ff4294967296.0Tb4b4b4) Tff7b72>>> T79c0ff0
Tff7b72: T79c0ff0Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff40Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3tempI64Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff44Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3tempI64Tb4b4b4[T79c0ff1Tb4b4b4]Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff48Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= T79c0ff4096Tb4b4b4;
Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff52Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3statTb4b4b4.Te6edf3blocksTb4b4b4;
Tb4b4b4(Tb4b4b4(Te6edf3tempI64 Tff7b72= Tb4b4b4[
Tffa657MathTb4b4b4.Te6edf3floorTb4b4b4(Te6edf3statTb4b4b4.Te6edf3atimeTb4b4b4.Te6edf3getTimeTb4b4b4(Tb4b4b4) Tff7b72/ T79c0ff1000Tb4b4b4) Tff7b72>>> T79c0ff0Tb4b4b4,
Tb4b4b4(Tb4b4b4(Te6edf3tempDouble Tff7b72= Tffa657MathTb4b4b4.Te6edf3floorTb4b4b4(Te6edf3statTb4b4b4.Te6edf3atimeTb4b4b4.Te6edf3getTimeTb4b4b4(Tb4b4b4) Tff7b72/ T79c0ff1000Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tff7b72+Tffa657MathTb4b4b4.Te6edf3absTb4b4b4(Te6edf3tempDoubleTb4b4b4) Tff7b72>= T79c0ff1.0
Tff7b72? Te6edf3tempDouble Tff7b72> T79c0ff0.0
Tff7b72? Tb4b4b4(Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Tff7b72+Tffa657MathTb4b4b4.Te6edf3floorTb4b4b4(Te6edf3tempDouble Tff7b72/ T79c0ff4294967296.0Tb4b4b4)Tb4b4b4, T79c0ff4294967295.0Tb4b4b4) Tff7b72| T79c0ff0Tb4b4b4) Tff7b72>>> T79c0ff0
Tff7b72: Tff7b72~Tff7b72~Tff7b72+Tffa657MathTb4b4b4.Te6edf3ceilTb4b4b4(Tb4b4b4(Te6edf3tempDouble Tff7b72- Tff7b72+Tb4b4b4(Tff7b72~Tff7b72~Te6edf3tempDouble Tff7b72>>> T79c0ff0Tb4b4b4)Tb4b4b4) Tff7b72/ T79c0ff4294967296.0Tb4b4b4) Tff7b72>>> T79c0ff0
Tff7b72: T79c0ff0Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff56Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3tempI64Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff60Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3tempI64Tb4b4b4[T79c0ff1Tb4b4b4]Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3HEAPU32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff64Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= T79c0ff0Tb4b4b4;
Tb4b4b4(Tb4b4b4(Te6edf3tempI64 Tff7b72= Tb4b4b4[
Tffa657MathTb4b4b4.Te6edf3floorTb4b4b4(Te6edf3statTb4b4b4.Te6edf3mtimeTb4b4b4.Te6edf3getTimeTb4b4b4(Tb4b4b4) Tff7b72/ T79c0ff1000Tb4b4b4) Tff7b72>>> T79c0ff0Tb4b4b4,
Tb4b4b4(Tb4b4b4(Te6edf3tempDouble Tff7b72= Tffa657MathTb4b4b4.Te6edf3floorTb4b4b4(Te6edf3statTb4b4b4.Te6edf3mtimeTb4b4b4.Te6edf3getTimeTb4b4b4(Tb4b4b4) Tff7b72/ T79c0ff1000Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tff7b72+Tffa657MathTb4b4b4.Te6edf3absTb4b4b4(Te6edf3tempDoubleTb4b4b4) Tff7b72>= T79c0ff1.0
Tff7b72? Te6edf3tempDouble Tff7b72> T79c0ff0.0
Tff7b72? Tb4b4b4(Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Tff7b72+Tffa657MathTb4b4b4.Te6edf3floorTb4b4b4(Te6edf3tempDouble Tff7b72/ T79c0ff4294967296.0Tb4b4b4)Tb4b4b4, T79c0ff4294967295.0Tb4b4b4) Tff7b72| T79c0ff0Tb4b4b4) Tff7b72>>> T79c0ff0
Tff7b72: Tff7b72~Tff7b72~Tff7b72+Tffa657MathTb4b4b4.Te6edf3ceilTb4b4b4(Tb4b4b4(Te6edf3tempDouble Tff7b72- Tff7b72+Tb4b4b4(Tff7b72~Tff7b72~Te6edf3tempDouble Tff7b72>>> T79c0ff0Tb4b4b4)Tb4b4b4) Tff7b72/ T79c0ff4294967296.0Tb4b4b4) Tff7b72>>> T79c0ff0
Tff7b72: T79c0ff0Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff72Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3tempI64Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff76Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3tempI64Tb4b4b4[T79c0ff1Tb4b4b4]Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3HEAPU32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff80Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= T79c0ff0Tb4b4b4;
Tb4b4b4(Tb4b4b4(Te6edf3tempI64 Tff7b72= Tb4b4b4[
Tffa657MathTb4b4b4.Te6edf3floorTb4b4b4(Te6edf3statTb4b4b4.Te6edf3ctimeTb4b4b4.Te6edf3getTimeTb4b4b4(Tb4b4b4) Tff7b72/ T79c0ff1000Tb4b4b4) Tff7b72>>> T79c0ff0Tb4b4b4,
Tb4b4b4(Tb4b4b4(Te6edf3tempDouble Tff7b72= Tffa657MathTb4b4b4.Te6edf3floorTb4b4b4(Te6edf3statTb4b4b4.Te6edf3ctimeTb4b4b4.Te6edf3getTimeTb4b4b4(Tb4b4b4) Tff7b72/ T79c0ff1000Tb4b4b4)Tb4b4b4)Tb4b4b4,
Tff7b72+Tffa657MathTb4b4b4.Te6edf3absTb4b4b4(Te6edf3tempDoubleTb4b4b4) Tff7b72>= T79c0ff1.0
Tff7b72? Te6edf3tempDouble Tff7b72> T79c0ff0.0
Tff7b72? Tb4b4b4(Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Tff7b72+Tffa657MathTb4b4b4.Te6edf3floorTb4b4b4(Te6edf3tempDouble Tff7b72/ T79c0ff4294967296.0Tb4b4b4)Tb4b4b4, T79c0ff4294967295.0Tb4b4b4) Tff7b72| T79c0ff0Tb4b4b4) Tff7b72>>> T79c0ff0
Tff7b72: Tff7b72~Tff7b72~Tff7b72+Tffa657MathTb4b4b4.Te6edf3ceilTb4b4b4(Tb4b4b4(Te6edf3tempDouble Tff7b72- Tff7b72+Tb4b4b4(Tff7b72~Tff7b72~Te6edf3tempDouble Tff7b72>>> T79c0ff0Tb4b4b4)Tb4b4b4) Tff7b72/ T79c0ff4294967296.0Tb4b4b4) Tff7b72>>> T79c0ff0
Tff7b72: T79c0ff0Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff88Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3tempI64Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff92Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3tempI64Tb4b4b4[T79c0ff1Tb4b4b4]Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3HEAPU32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff96Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= T79c0ff0Tb4b4b4;
Tb4b4b4(Tb4b4b4(Te6edf3tempI64 Tff7b72= Tb4b4b4[
Te6edf3statTb4b4b4.Te6edf3ino Tff7b72>>> T79c0ff0Tb4b4b4,
Tb4b4b4(Tb4b4b4(Te6edf3tempDouble Tff7b72= Te6edf3statTb4b4b4.Te6edf3inoTb4b4b4)Tb4b4b4,
Tff7b72+Tffa657MathTb4b4b4.Te6edf3absTb4b4b4(Te6edf3tempDoubleTb4b4b4) Tff7b72>= T79c0ff1.0
Tff7b72? Te6edf3tempDouble Tff7b72> T79c0ff0.0
Tff7b72? Tb4b4b4(Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Tff7b72+Tffa657MathTb4b4b4.Te6edf3floorTb4b4b4(Te6edf3tempDouble Tff7b72/ T79c0ff4294967296.0Tb4b4b4)Tb4b4b4, T79c0ff4294967295.0Tb4b4b4) Tff7b72| T79c0ff0Tb4b4b4) Tff7b72>>> T79c0ff0
Tff7b72: Tff7b72~Tff7b72~Tff7b72+Tffa657MathTb4b4b4.Te6edf3ceilTb4b4b4(Tb4b4b4(Te6edf3tempDouble Tff7b72- Tff7b72+Tb4b4b4(Tff7b72~Tff7b72~Te6edf3tempDouble Tff7b72>>> T79c0ff0Tb4b4b4)Tb4b4b4) Tff7b72/ T79c0ff4294967296.0Tb4b4b4) Tff7b72>>> T79c0ff0
Tff7b72: T79c0ff0Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff104Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3tempI64Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3buf Tff7b72+ T79c0ff108Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3tempI64Tb4b4b4[T79c0ff1Tb4b4b4]Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3doMsyncTff7b72: Tff7b72function Tb4b4b4(Te6edf3addrTb4b4b4, Te6edf3streamTb4b4b4, Te6edf3lenTb4b4b4, Te6edf3flagsTb4b4b4, Te6edf3offsetTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3FSTb4b4b4.Te6edf3isFileTb4b4b4(Te6edf3streamTb4b4b4.Te6edf3nodeTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff43Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3flags Tff7b72& T79c0ff2Tb4b4b4) Tb4b4b4{
T8b949e// MAP_PRIVATE calls need not to be synced back to underlying fs
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3buffer Tff7b72= Te6edf3HEAPU8Tb4b4b4.Te6edf3sliceTb4b4b4(Te6edf3addrTb4b4b4, Te6edf3addr Tff7b72+ Te6edf3lenTb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3msyncTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3bufferTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3lenTb4b4b4, Te6edf3flagsTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3varargsTff7b72: Tff7b72undefinedTb4b4b4,
Te6edf3getTff7b72: Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3SYSCALLSTb4b4b4.Te6edf3varargs Tff7b72+= T79c0ff4Tb4b4b4;
Tff7b72var Te6edf3ret Tff7b72= Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3SYSCALLSTb4b4b4.Te6edf3varargs Tff7b72- T79c0ff4Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4]Tb4b4b4;
Tff7b72return Te6edf3retTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3getStrTff7b72: Tff7b72function Tb4b4b4(Te6edf3ptrTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3ret Tff7b72= Te6edf3UTF8ToStringTb4b4b4(Te6edf3ptrTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3retTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3getStreamFromFDTff7b72: Tff7b72function Tb4b4b4(Te6edf3fdTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3stream Tff7b72= Te6edf3FSTb4b4b4.Te6edf3getStreamTb4b4b4(Te6edf3fdTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4) Tff7b72throw Tff7b72new Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4(T79c0ff8Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3streamTb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72function Te6edf3___syscall_fcntl64Tb4b4b4(Te6edf3fdTb4b4b4, Te6edf3cmdTb4b4b4, Te6edf3varargsTb4b4b4) Tb4b4b4{
Te6edf3SYSCALLSTb4b4b4.Te6edf3varargs Tff7b72= Te6edf3varargsTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72var Te6edf3stream Tff7b72= Te6edf3SYSCALLSTb4b4b4.Te6edf3getStreamFromFDTb4b4b4(Te6edf3fdTb4b4b4)Tb4b4b4;
Tff7b72switch Tb4b4b4(Te6edf3cmdTb4b4b4) Tb4b4b4{
Tff7b72case T79c0ff0Tff7b72: Tb4b4b4{
Tff7b72var Te6edf3arg Tff7b72= Te6edf3SYSCALLSTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3arg Tff7b72< T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72-T79c0ff28Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3newStreamTb4b4b4;
Te6edf3newStream Tff7b72= Te6edf3FSTb4b4b4.Te6edf3createStreamTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3argTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3newStreamTb4b4b4.Te6edf3fdTb4b4b4;
Tb4b4b4}
Tff7b72case T79c0ff1Tff7b72:
Tff7b72case T79c0ff2Tff7b72:
Tff7b72return T79c0ff0Tb4b4b4; T8b949e// FD_CLOEXEC makes no sense for a single process.
Tff7b72case T79c0ff3Tff7b72:
Tff7b72return Te6edf3streamTb4b4b4.Te6edf3flagsTb4b4b4;
Tff7b72case T79c0ff4Tff7b72: Tb4b4b4{
Tff7b72var Te6edf3arg Tff7b72= Te6edf3SYSCALLSTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3streamTb4b4b4.Te6edf3flags Tff7b72|= Te6edf3argTb4b4b4;
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}
Tff7b72case T79c0ff5Tff7b72: T8b949e/* case 5: Currently in musl F_GETLK64 has same value as F_GETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */ Tb4b4b4{
Tff7b72var Te6edf3arg Tff7b72= Te6edf3SYSCALLSTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3offset Tff7b72= T79c0ff0Tb4b4b4;
T8b949e// We're always unlocked.
Te6edf3HEAP16Tb4b4b4[Tb4b4b4(Te6edf3arg Tff7b72+ Te6edf3offsetTb4b4b4) Tff7b72>> T79c0ff1Tb4b4b4] Tff7b72= T79c0ff2Tb4b4b4;
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}
Tff7b72case T79c0ff6Tff7b72:
Tff7b72case T79c0ff7Tff7b72:
T8b949e/* case 6: Currently in musl F_SETLK64 has same value as F_SETLK, so omitted to avoid duplicate case blocks. If that changes, uncomment this */
T8b949e/* case 7: Currently in musl F_SETLKW64 has same value as F_SETLKW, so omitted to avoid duplicate case blocks. If that changes, uncomment this */
Tff7b72return T79c0ff0Tb4b4b4; T8b949e// Pretend that the locking is successful.
Tff7b72case T79c0ff16Tff7b72:
Tff7b72case T79c0ff8Tff7b72:
Tff7b72return Tff7b72-T79c0ff28Tb4b4b4; T8b949e// These are for sockets. We don't have them fully implemented yet.
Tff7b72case T79c0ff9Tff7b72:
T8b949e// musl trusts getown return values, due to a bug where they must be, as they overlap with errors. just return -1 here, so fcntl() returns that, and we set errno ourselves.
Te6edf3setErrNoTb4b4b4(T79c0ff28Tb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72-T79c0ff1Tb4b4b4;
Tff7b72defaultTff7b72: Tb4b4b4{
Tff7b72return Tff7b72-T79c0ff28Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3FS Tff7b72== Ta5d6ff"undefined" Tff7b72|| Tff7b72!Tb4b4b4(Te6edf3e Tff7b72instanceof Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4)Tb4b4b4) Tff7b72throw Te6edf3eTb4b4b4;
Tff7b72return Tff7b72-Te6edf3eTb4b4b4.Te6edf3errnoTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72function Te6edf3___syscall_ioctlTb4b4b4(Te6edf3fdTb4b4b4, Te6edf3opTb4b4b4, Te6edf3varargsTb4b4b4) Tb4b4b4{
Te6edf3SYSCALLSTb4b4b4.Te6edf3varargs Tff7b72= Te6edf3varargsTb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72var Te6edf3stream Tff7b72= Te6edf3SYSCALLSTb4b4b4.Te6edf3getStreamFromFDTb4b4b4(Te6edf3fdTb4b4b4)Tb4b4b4;
Tff7b72switch Tb4b4b4(Te6edf3opTb4b4b4) Tb4b4b4{
Tff7b72case T79c0ff21509Tff7b72:
Tff7b72case T79c0ff21505Tff7b72: Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4.Te6edf3ttyTb4b4b4) Tff7b72return Tff7b72-T79c0ff59Tb4b4b4;
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}
Tff7b72case T79c0ff21510Tff7b72:
Tff7b72case T79c0ff21511Tff7b72:
Tff7b72case T79c0ff21512Tff7b72:
Tff7b72case T79c0ff21506Tff7b72:
Tff7b72case T79c0ff21507Tff7b72:
Tff7b72case T79c0ff21508Tff7b72: Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4.Te6edf3ttyTb4b4b4) Tff7b72return Tff7b72-T79c0ff59Tb4b4b4;
Tff7b72return T79c0ff0Tb4b4b4; T8b949e// no-op, not actually adjusting terminal settings
Tb4b4b4}
Tff7b72case T79c0ff21519Tff7b72: Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4.Te6edf3ttyTb4b4b4) Tff7b72return Tff7b72-T79c0ff59Tb4b4b4;
Tff7b72var Te6edf3argp Tff7b72= Te6edf3SYSCALLSTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3HEAP32Tb4b4b4[Te6edf3argp Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}
Tff7b72case T79c0ff21520Tff7b72: Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4.Te6edf3ttyTb4b4b4) Tff7b72return Tff7b72-T79c0ff59Tb4b4b4;
Tff7b72return Tff7b72-T79c0ff28Tb4b4b4; T8b949e// not supported
Tb4b4b4}
Tff7b72case T79c0ff21531Tff7b72: Tb4b4b4{
Tff7b72var Te6edf3argp Tff7b72= Te6edf3SYSCALLSTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3FSTb4b4b4.Te6edf3ioctlTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3opTb4b4b4, Te6edf3argpTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72case T79c0ff21523Tff7b72: Tb4b4b4{
T8b949e// TODO: in theory we should write to the winsize struct that gets
T8b949e// passed in, but for now musl doesn't read anything on it
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4.Te6edf3ttyTb4b4b4) Tff7b72return Tff7b72-T79c0ff59Tb4b4b4;
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}
Tff7b72case T79c0ff21524Tff7b72: Tb4b4b4{
T8b949e// TODO: technically, this ioctl call should change the window size.
T8b949e// but, since emscripten doesn't have any concept of a terminal window
T8b949e// yet, we'll just silently throw it away as we do TIOCGWINSZ
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3streamTb4b4b4.Te6edf3ttyTb4b4b4) Tff7b72return Tff7b72-T79c0ff59Tb4b4b4;
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4}
Tff7b72defaultTff7b72:
Tff7b72return Tff7b72-T79c0ff28Tb4b4b4; T8b949e// not supported
Tb4b4b4}
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3FS Tff7b72== Ta5d6ff"undefined" Tff7b72|| Tff7b72!Tb4b4b4(Te6edf3e Tff7b72instanceof Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4)Tb4b4b4) Tff7b72throw Te6edf3eTb4b4b4;
Tff7b72return Tff7b72-Te6edf3eTb4b4b4.Te6edf3errnoTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72function Te6edf3___syscall_openatTb4b4b4(Te6edf3dirfdTb4b4b4, Te6edf3pathTb4b4b4, Te6edf3flagsTb4b4b4, Te6edf3varargsTb4b4b4) Tb4b4b4{
Te6edf3SYSCALLSTb4b4b4.Te6edf3varargs Tff7b72= Te6edf3varargsTb4b4b4;
Tff7b72try Tb4b4b4{
Te6edf3path Tff7b72= Te6edf3SYSCALLSTb4b4b4.Te6edf3getStrTb4b4b4(Te6edf3pathTb4b4b4)Tb4b4b4;
Te6edf3path Tff7b72= Te6edf3SYSCALLSTb4b4b4.Te6edf3calculateAtTb4b4b4(Te6edf3dirfdTb4b4b4, Te6edf3pathTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3mode Tff7b72= Te6edf3varargs Tff7b72? Te6edf3SYSCALLSTb4b4b4.Te6edf3getTb4b4b4(Tb4b4b4) Tff7b72: T79c0ff0Tb4b4b4;
Tff7b72return Te6edf3FSTb4b4b4.Te6edf3openTb4b4b4(Te6edf3pathTb4b4b4, Te6edf3flagsTb4b4b4, Te6edf3modeTb4b4b4)Tb4b4b4.Te6edf3fdTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3FS Tff7b72== Ta5d6ff"undefined" Tff7b72|| Tff7b72!Tb4b4b4(Te6edf3e Tff7b72instanceof Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4)Tb4b4b4) Tff7b72throw Te6edf3eTb4b4b4;
Tff7b72return Tff7b72-Te6edf3eTb4b4b4.Te6edf3errnoTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72function Te6edf3_emscripten_memcpy_bigTb4b4b4(Te6edf3destTb4b4b4, Te6edf3srcTb4b4b4, Te6edf3numTb4b4b4) Tb4b4b4{
Te6edf3HEAPU8Tb4b4b4.Te6edf3copyWithinTb4b4b4(Te6edf3destTb4b4b4, Te6edf3srcTb4b4b4, Te6edf3src Tff7b72+ Te6edf3numTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3getHeapMaxTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// Stay one Wasm page short of 4GB: while e.g. Chrome is able to allocate
T8b949e// full 4GB Wasm memories, the size will wrap back to 0 bytes in Wasm side
T8b949e// for any code that deals with heap sizes, which would require special
T8b949e// casing all heap size related code to treat 0 specially.
Tff7b72return T79c0ff2147483648Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3emscripten_realloc_bufferTb4b4b4(Te6edf3sizeTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
T8b949e// round size grow request up to wasm page size (fixed 64KB per spec)
Te6edf3wasmMemoryTb4b4b4.Te6edf3growTb4b4b4(Tb4b4b4(Te6edf3size Tff7b72- Te6edf3bufferTb4b4b4.Te6edf3byteLength Tff7b72+ T79c0ff65535Tb4b4b4) Tff7b72>>> T79c0ff16Tb4b4b4)Tb4b4b4; T8b949e// .grow() takes a delta compared to the previous size
Te6edf3updateGlobalBufferAndViewsTb4b4b4(Te6edf3wasmMemoryTb4b4b4.Te6edf3bufferTb4b4b4)Tb4b4b4;
Tff7b72return T79c0ff1 T8b949e/*success*/Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{Tb4b4b4}
T8b949e// implicit 0 return to save code size (caller will cast "undefined" into 0
T8b949e// anyhow)
Tb4b4b4}
Tff7b72function Te6edf3_emscripten_resize_heapTb4b4b4(Te6edf3requestedSizeTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3oldSize Tff7b72= Te6edf3HEAPU8Tb4b4b4.Te6edf3lengthTb4b4b4;
Te6edf3requestedSize Tff7b72= Te6edf3requestedSize Tff7b72>>> T79c0ff0Tb4b4b4;
T8b949e// With multithreaded builds, races can happen (another thread might increase the size
T8b949e// in between), so return a failure, and let the caller retry.
T8b949e// Memory resize rules:
T8b949e// 1. Always increase heap size to at least the requested size, rounded up
T8b949e// to next page multiple.
T8b949e// 2a. If MEMORY_GROWTH_LINEAR_STEP == -1, excessively resize the heap
T8b949e// geometrically: increase the heap size according to
T8b949e// MEMORY_GROWTH_GEOMETRIC_STEP factor (default +20%), At most
T8b949e// overreserve by MEMORY_GROWTH_GEOMETRIC_CAP bytes (default 96MB).
T8b949e// 2b. If MEMORY_GROWTH_LINEAR_STEP != -1, excessively resize the heap
T8b949e// linearly: increase the heap size by at least
T8b949e// MEMORY_GROWTH_LINEAR_STEP bytes.
T8b949e// 3. Max size for the heap is capped at 2048MB-WASM_PAGE_SIZE, or by
T8b949e// MAXIMUM_MEMORY, or by ASAN limit, depending on which is smallest
T8b949e// 4. If we were unable to allocate as much memory, it may be due to
T8b949e// over-eager decision to excessively reserve due to (3) above.
T8b949e// Hence if an allocation fails, cut down on the amount of excess
T8b949e// growth, in an attempt to succeed to perform a smaller allocation.
T8b949e// A limit is set for how much we can grow. We should not exceed that
T8b949e// (the wasm binary specifies it, so if we tried, we'd fail anyhow).
Tff7b72var Te6edf3maxHeapSize Tff7b72= Te6edf3getHeapMaxTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3requestedSize Tff7b72> Te6edf3maxHeapSizeTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tff7b72let Te6edf3alignUp Tff7b72= Tb4b4b4(Te6edf3xTb4b4b4, Te6edf3multipleTb4b4b4) Tb4b4b4=> Te6edf3x Tff7b72+ Tb4b4b4(Tb4b4b4(Te6edf3multiple Tff7b72- Tb4b4b4(Te6edf3x Tff7b72% Te6edf3multipleTb4b4b4)Tb4b4b4) Tff7b72% Te6edf3multipleTb4b4b4)Tb4b4b4;
T8b949e// Loop through potential heap size increases. If we attempt a too eager
T8b949e// reservation that fails, cut down on the attempted size and reserve a
T8b949e// smaller bump instead. (max 3 times, chosen somewhat arbitrarily)
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3cutDown Tff7b72= T79c0ff1Tb4b4b4; Te6edf3cutDown Tff7b72<= T79c0ff4Tb4b4b4; Te6edf3cutDown Tff7b72*= T79c0ff2Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3overGrownHeapSize Tff7b72= Te6edf3oldSize Tff7b72* Tb4b4b4(T79c0ff1 Tff7b72+ T79c0ff0.2 Tff7b72/ Te6edf3cutDownTb4b4b4)Tb4b4b4; T8b949e// ensure geometric growth
T8b949e// but limit overreserving (default to capping at +96MB overgrowth at most)
Te6edf3overGrownHeapSize Tff7b72= Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Te6edf3overGrownHeapSizeTb4b4b4, Te6edf3requestedSize Tff7b72+ T79c0ff100663296Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3newSize Tff7b72= Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Te6edf3maxHeapSizeTb4b4b4, Te6edf3alignUpTb4b4b4(Tffa657MathTb4b4b4.Te6edf3maxTb4b4b4(Te6edf3requestedSizeTb4b4b4, Te6edf3overGrownHeapSizeTb4b4b4)Tb4b4b4, T79c0ff65536Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3replacement Tff7b72= Te6edf3emscripten_realloc_bufferTb4b4b4(Te6edf3newSizeTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3replacementTb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3_proc_exitTb4b4b4(Te6edf3codeTb4b4b4) Tb4b4b4{
Te6edf3EXITSTATUS Tff7b72= Te6edf3codeTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3keepRuntimeAliveTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"onExit"Tb4b4b4]Tb4b4b4) Te6edf3ModuleTb4b4b4[Ta5d6ff"onExit"Tb4b4b4]Tb4b4b4(Te6edf3codeTb4b4b4)Tb4b4b4;
Te6edf3ABORT Tff7b72= Tff7b72trueTb4b4b4;
Tb4b4b4}
Te6edf3quit_Tb4b4b4(Te6edf3codeTb4b4b4, Tff7b72new Te6edf3ExitStatusTb4b4b4(Te6edf3codeTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
T8b949e/** @param {boolean|number=} implicit */
Tff7b72function Te6edf3exitJSTb4b4b4(Te6edf3statusTb4b4b4, Te6edf3implicitTb4b4b4) Tb4b4b4{
Te6edf3EXITSTATUS Tff7b72= Te6edf3statusTb4b4b4;
Te6edf3_proc_exitTb4b4b4(Te6edf3statusTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3_exit Tff7b72= Te6edf3exitJSTb4b4b4;
Tff7b72function Te6edf3_fd_closeTb4b4b4(Te6edf3fdTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72var Te6edf3stream Tff7b72= Te6edf3SYSCALLSTb4b4b4.Te6edf3getStreamFromFDTb4b4b4(Te6edf3fdTb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3closeTb4b4b4(Te6edf3streamTb4b4b4)Tb4b4b4;
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3FS Tff7b72== Ta5d6ff"undefined" Tff7b72|| Tff7b72!Tb4b4b4(Te6edf3e Tff7b72instanceof Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4)Tb4b4b4) Tff7b72throw Te6edf3eTb4b4b4;
Tff7b72return Te6edf3eTb4b4b4.Te6edf3errnoTb4b4b4;
Tb4b4b4}
Tb4b4b4}
T8b949e/** @param {number=} offset */
Tff7b72function Te6edf3doReadvTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3iovTb4b4b4, Te6edf3iovcntTb4b4b4, Te6edf3offsetTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3ret Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3iovcntTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3ptr Tff7b72= Te6edf3HEAPU32Tb4b4b4[Te6edf3iov Tff7b72>> T79c0ff2Tb4b4b4]Tb4b4b4;
Tff7b72var Te6edf3len Tff7b72= Te6edf3HEAPU32Tb4b4b4[Tb4b4b4(Te6edf3iov Tff7b72+ T79c0ff4Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4]Tb4b4b4;
Te6edf3iov Tff7b72+= T79c0ff8Tb4b4b4;
Tff7b72var Te6edf3curr Tff7b72= Te6edf3FSTb4b4b4.Te6edf3readTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3HEAP8Tb4b4b4, Te6edf3ptrTb4b4b4, Te6edf3lenTb4b4b4, Te6edf3offsetTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3curr Tff7b72< T79c0ff0Tb4b4b4) Tff7b72return Tff7b72-T79c0ff1Tb4b4b4;
Te6edf3ret Tff7b72+= Te6edf3currTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3curr Tff7b72< Te6edf3lenTb4b4b4) Tff7b72breakTb4b4b4; T8b949e// nothing more to read
Tb4b4b4}
Tff7b72return Te6edf3retTb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3_fd_readTb4b4b4(Te6edf3fdTb4b4b4, Te6edf3iovTb4b4b4, Te6edf3iovcntTb4b4b4, Te6edf3pnumTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72var Te6edf3stream Tff7b72= Te6edf3SYSCALLSTb4b4b4.Te6edf3getStreamFromFDTb4b4b4(Te6edf3fdTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3num Tff7b72= Te6edf3doReadvTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3iovTb4b4b4, Te6edf3iovcntTb4b4b4)Tb4b4b4;
Te6edf3HEAPU32Tb4b4b4[Te6edf3pnum Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3numTb4b4b4;
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3FS Tff7b72== Ta5d6ff"undefined" Tff7b72|| Tff7b72!Tb4b4b4(Te6edf3e Tff7b72instanceof Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4)Tb4b4b4) Tff7b72throw Te6edf3eTb4b4b4;
Tff7b72return Te6edf3eTb4b4b4.Te6edf3errnoTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72function Te6edf3convertI32PairToI53CheckedTb4b4b4(Te6edf3loTb4b4b4, Te6edf3hiTb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4(Te6edf3hi Tff7b72+ T79c0ff0x200000Tb4b4b4) Tff7b72>>> T79c0ff0 Tff7b72< T79c0ff0x400001 Tff7b72- Tff7b72!Tff7b72!Te6edf3lo Tff7b72? Tb4b4b4(Te6edf3lo Tff7b72>>> T79c0ff0Tb4b4b4) Tff7b72+ Te6edf3hi Tff7b72* T79c0ff4294967296 Tff7b72: Tff7b72NaNTb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3_fd_seekTb4b4b4(Te6edf3fdTb4b4b4, Te6edf3offset_lowTb4b4b4, Te6edf3offset_highTb4b4b4, Te6edf3whenceTb4b4b4, Te6edf3newOffsetTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72var Te6edf3offset Tff7b72= Te6edf3convertI32PairToI53CheckedTb4b4b4(Te6edf3offset_lowTb4b4b4, Te6edf3offset_highTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tffa657isNaNTb4b4b4(Te6edf3offsetTb4b4b4)Tb4b4b4) Tff7b72return T79c0ff61Tb4b4b4;
Tff7b72var Te6edf3stream Tff7b72= Te6edf3SYSCALLSTb4b4b4.Te6edf3getStreamFromFDTb4b4b4(Te6edf3fdTb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3llseekTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3offsetTb4b4b4, Te6edf3whenceTb4b4b4)Tb4b4b4;
Tb4b4b4(Tb4b4b4(Te6edf3tempI64 Tff7b72= Tb4b4b4[
Te6edf3streamTb4b4b4.Te6edf3position Tff7b72>>> T79c0ff0Tb4b4b4,
Tb4b4b4(Tb4b4b4(Te6edf3tempDouble Tff7b72= Te6edf3streamTb4b4b4.Te6edf3positionTb4b4b4)Tb4b4b4,
Tff7b72+Tffa657MathTb4b4b4.Te6edf3absTb4b4b4(Te6edf3tempDoubleTb4b4b4) Tff7b72>= T79c0ff1.0
Tff7b72? Te6edf3tempDouble Tff7b72> T79c0ff0.0
Tff7b72? Tb4b4b4(Tffa657MathTb4b4b4.Te6edf3minTb4b4b4(Tff7b72+Tffa657MathTb4b4b4.Te6edf3floorTb4b4b4(Te6edf3tempDouble Tff7b72/ T79c0ff4294967296.0Tb4b4b4)Tb4b4b4, T79c0ff4294967295.0Tb4b4b4) Tff7b72| T79c0ff0Tb4b4b4) Tff7b72>>> T79c0ff0
Tff7b72: Tff7b72~Tff7b72~Tff7b72+Tffa657MathTb4b4b4.Te6edf3ceilTb4b4b4(Tb4b4b4(Te6edf3tempDouble Tff7b72- Tff7b72+Tb4b4b4(Tff7b72~Tff7b72~Te6edf3tempDouble Tff7b72>>> T79c0ff0Tb4b4b4)Tb4b4b4) Tff7b72/ T79c0ff4294967296.0Tb4b4b4) Tff7b72>>> T79c0ff0
Tff7b72: T79c0ff0Tb4b4b4)Tb4b4b4,
Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3HEAP32Tb4b4b4[Te6edf3newOffset Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3tempI64Tb4b4b4[T79c0ff0Tb4b4b4]Tb4b4b4)Tb4b4b4,
Tb4b4b4(Te6edf3HEAP32Tb4b4b4[Tb4b4b4(Te6edf3newOffset Tff7b72+ T79c0ff4Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3tempI64Tb4b4b4[T79c0ff1Tb4b4b4]Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3streamTb4b4b4.Te6edf3getdents Tff7b72&& Te6edf3offset Tff7b72=== T79c0ff0 Tff7b72&& Te6edf3whence Tff7b72=== T79c0ff0Tb4b4b4) Te6edf3streamTb4b4b4.Te6edf3getdents Tff7b72= Tff7b72nullTb4b4b4; T8b949e// reset readdir state
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3FS Tff7b72== Ta5d6ff"undefined" Tff7b72|| Tff7b72!Tb4b4b4(Te6edf3e Tff7b72instanceof Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4)Tb4b4b4) Tff7b72throw Te6edf3eTb4b4b4;
Tff7b72return Te6edf3eTb4b4b4.Te6edf3errnoTb4b4b4;
Tb4b4b4}
Tb4b4b4}
T8b949e/** @param {number=} offset */
Tff7b72function Te6edf3doWritevTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3iovTb4b4b4, Te6edf3iovcntTb4b4b4, Te6edf3offsetTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3ret Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72for Tb4b4b4(Tff7b72var Te6edf3i Tff7b72= T79c0ff0Tb4b4b4; Te6edf3i Tff7b72< Te6edf3iovcntTb4b4b4; Te6edf3iTff7b72++Tb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3ptr Tff7b72= Te6edf3HEAPU32Tb4b4b4[Te6edf3iov Tff7b72>> T79c0ff2Tb4b4b4]Tb4b4b4;
Tff7b72var Te6edf3len Tff7b72= Te6edf3HEAPU32Tb4b4b4[Tb4b4b4(Te6edf3iov Tff7b72+ T79c0ff4Tb4b4b4) Tff7b72>> T79c0ff2Tb4b4b4]Tb4b4b4;
Te6edf3iov Tff7b72+= T79c0ff8Tb4b4b4;
Tff7b72var Te6edf3curr Tff7b72= Te6edf3FSTb4b4b4.Te6edf3writeTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3HEAP8Tb4b4b4, Te6edf3ptrTb4b4b4, Te6edf3lenTb4b4b4, Te6edf3offsetTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3curr Tff7b72< T79c0ff0Tb4b4b4) Tff7b72return Tff7b72-T79c0ff1Tb4b4b4;
Te6edf3ret Tff7b72+= Te6edf3currTb4b4b4;
Tb4b4b4}
Tff7b72return Te6edf3retTb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3_fd_writeTb4b4b4(Te6edf3fdTb4b4b4, Te6edf3iovTb4b4b4, Te6edf3iovcntTb4b4b4, Te6edf3pnumTb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72var Te6edf3stream Tff7b72= Te6edf3SYSCALLSTb4b4b4.Te6edf3getStreamFromFDTb4b4b4(Te6edf3fdTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3num Tff7b72= Te6edf3doWritevTb4b4b4(Te6edf3streamTb4b4b4, Te6edf3iovTb4b4b4, Te6edf3iovcntTb4b4b4)Tb4b4b4;
Te6edf3HEAPU32Tb4b4b4[Te6edf3pnum Tff7b72>> T79c0ff2Tb4b4b4] Tff7b72= Te6edf3numTb4b4b4;
Tff7b72return T79c0ff0Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3FS Tff7b72== Ta5d6ff"undefined" Tff7b72|| Tff7b72!Tb4b4b4(Te6edf3e Tff7b72instanceof Te6edf3FSTb4b4b4.Te6edf3ErrnoErrorTb4b4b4)Tb4b4b4) Tff7b72throw Te6edf3eTb4b4b4;
Tff7b72return Te6edf3eTb4b4b4.Te6edf3errnoTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72function Te6edf3handleExceptionTb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
T8b949e// Certain exception types we do not treat as errors since they are used for
T8b949e// internal control flow.
T8b949e// 1. ExitStatus, which is thrown by exit()
T8b949e// 2. "unwind", which is thrown by emscripten_unwind_to_js_event_loop() and others
T8b949e// that wish to return to JS event loop.
Tff7b72if Tb4b4b4(Te6edf3e Tff7b72instanceof Te6edf3ExitStatus Tff7b72|| Te6edf3e Tff7b72== Ta5d6ff"unwind"Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3EXITSTATUSTb4b4b4;
Tb4b4b4}
Te6edf3quit_Tb4b4b4(T79c0ff1Tb4b4b4, Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3allocateUTF8OnStackTb4b4b4(Te6edf3strTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3size Tff7b72= Te6edf3lengthBytesUTF8Tb4b4b4(Te6edf3strTb4b4b4) Tff7b72+ T79c0ff1Tb4b4b4;
Tff7b72var Te6edf3ret Tff7b72= Te6edf3stackAllocTb4b4b4(Te6edf3sizeTb4b4b4)Tb4b4b4;
Te6edf3stringToUTF8ArrayTb4b4b4(Te6edf3strTb4b4b4, Te6edf3HEAP8Tb4b4b4, Te6edf3retTb4b4b4, Te6edf3sizeTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3retTb4b4b4;
Tb4b4b4}
Tff7b72var Te6edf3FSNode Tff7b72= T8b949e/** @constructor */ Tff7b72function Tb4b4b4(Te6edf3parentTb4b4b4, Te6edf3nameTb4b4b4, Te6edf3modeTb4b4b4, Te6edf3rdevTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3parentTb4b4b4) Tb4b4b4{
Te6edf3parent Tff7b72= Tff7b72thisTb4b4b4; T8b949e// root node sets parent to itself
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3parent Tff7b72= Te6edf3parentTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3mount Tff7b72= Te6edf3parentTb4b4b4.Te6edf3mountTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3mounted Tff7b72= Tff7b72nullTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3id Tff7b72= Te6edf3FSTb4b4b4.Te6edf3nextInodeTff7b72++Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3name Tff7b72= Te6edf3nameTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3mode Tff7b72= Te6edf3modeTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3node_ops Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3stream_ops Tff7b72= Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3rdev Tff7b72= Te6edf3rdevTb4b4b4;
Tb4b4b4}Tb4b4b4;
Tff7b72var Te6edf3readMode Tff7b72= T79c0ff292 T8b949e/*292*/ Tff7b72| T79c0ff73Tb4b4b4; T8b949e/*73*/
Tff7b72var Te6edf3writeMode Tff7b72= T79c0ff146Tb4b4b4; T8b949e/*146*/
Tffa657ObjectTb4b4b4.Te6edf3definePropertiesTb4b4b4(Te6edf3FSNodeTb4b4b4.Te6edf3prototypeTb4b4b4, Tb4b4b4{
Te6edf3readTff7b72: Tb4b4b4{
Te6edf3getTff7b72: T8b949e/** @this{FSNode} */ Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3mode Tff7b72& Te6edf3readModeTb4b4b4) Tff7b72=== Te6edf3readModeTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3setTff7b72: T8b949e/** @this{FSNode} */ Tff7b72function Tb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Te6edf3val Tff7b72? Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3mode Tff7b72|= Te6edf3readModeTb4b4b4) Tff7b72: Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3mode Tff7b72&= Tff7b72~Te6edf3readModeTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3writeTff7b72: Tb4b4b4{
Te6edf3getTff7b72: T8b949e/** @this{FSNode} */ Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3mode Tff7b72& Te6edf3writeModeTb4b4b4) Tff7b72=== Te6edf3writeModeTb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3setTff7b72: T8b949e/** @this{FSNode} */ Tff7b72function Tb4b4b4(Te6edf3valTb4b4b4) Tb4b4b4{
Te6edf3val Tff7b72? Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3mode Tff7b72|= Te6edf3writeModeTb4b4b4) Tff7b72: Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3mode Tff7b72&= Tff7b72~Te6edf3writeModeTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3isFolderTff7b72: Tb4b4b4{
Te6edf3getTff7b72: T8b949e/** @this{FSNode} */ Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3FSTb4b4b4.Te6edf3isDirTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3isDeviceTff7b72: Tb4b4b4{
Te6edf3getTff7b72: T8b949e/** @this{FSNode} */ Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3FSTb4b4b4.Te6edf3isChrdevTb4b4b4(Tff7b72thisTb4b4b4.Te6edf3modeTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3FSNode Tff7b72= Te6edf3FSNodeTb4b4b4;
Te6edf3FSTb4b4b4.Te6edf3staticInitTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3ASSERTIONS Tff7b72= Tff7b72falseTb4b4b4;
Tff7b72var Te6edf3asmLibraryArg Tff7b72= Tb4b4b4{
Te6edf3__assert_failTff7b72: Te6edf3___assert_failTb4b4b4,
Te6edf3__syscall_fcntl64Tff7b72: Te6edf3___syscall_fcntl64Tb4b4b4,
Te6edf3__syscall_ioctlTff7b72: Te6edf3___syscall_ioctlTb4b4b4,
Te6edf3__syscall_openatTff7b72: Te6edf3___syscall_openatTb4b4b4,
Te6edf3emscripten_memcpy_bigTff7b72: Te6edf3_emscripten_memcpy_bigTb4b4b4,
Te6edf3emscripten_resize_heapTff7b72: Te6edf3_emscripten_resize_heapTb4b4b4,
Te6edf3exitTff7b72: Te6edf3_exitTb4b4b4,
Te6edf3fd_closeTff7b72: Te6edf3_fd_closeTb4b4b4,
Te6edf3fd_readTff7b72: Te6edf3_fd_readTb4b4b4,
Te6edf3fd_seekTff7b72: Te6edf3_fd_seekTb4b4b4,
Te6edf3fd_writeTff7b72: Te6edf3_fd_writeTb4b4b4,
Tb4b4b4}Tb4b4b4;
Tff7b72var Te6edf3asm Tff7b72= Te6edf3createWasmTb4b4b4(Tb4b4b4)Tb4b4b4;
T8b949e/** @type {function(...*):?} */
Tff7b72var Te6edf3___wasm_call_ctors Tff7b72= Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"___wasm_call_ctors"Tb4b4b4] Tff7b72= Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4(Te6edf3___wasm_call_ctors Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"___wasm_call_ctors"Tb4b4b4] Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"asm"Tb4b4b4]Tb4b4b4[Ta5d6ff"__wasm_call_ctors"Tb4b4b4]Tb4b4b4)Tb4b4b4.Te6edf3applyTb4b4b4(
Tff7b72nullTb4b4b4,
Te6edf3arguments
Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
T8b949e/** @type {function(...*):?} */
Tff7b72var Te6edf3_main Tff7b72= Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"_main"Tb4b4b4] Tff7b72= Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4(Te6edf3_main Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"_main"Tb4b4b4] Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"asm"Tb4b4b4]Tb4b4b4[Ta5d6ff"__main_argc_argv"Tb4b4b4]Tb4b4b4)Tb4b4b4.Te6edf3applyTb4b4b4(Tff7b72nullTb4b4b4, Te6edf3argumentsTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
T8b949e/** @type {function(...*):?} */
Tff7b72var Te6edf3___errno_location Tff7b72= Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"___errno_location"Tb4b4b4] Tff7b72= Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4(Te6edf3___errno_location Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"___errno_location"Tb4b4b4] Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"asm"Tb4b4b4]Tb4b4b4[Ta5d6ff"__errno_location"Tb4b4b4]Tb4b4b4)Tb4b4b4.Te6edf3applyTb4b4b4(
Tff7b72nullTb4b4b4,
Te6edf3arguments
Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
T8b949e/** @type {function(...*):?} */
Tff7b72var Te6edf3stackSave Tff7b72= Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"stackSave"Tb4b4b4] Tff7b72= Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4(Te6edf3stackSave Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"stackSave"Tb4b4b4] Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"asm"Tb4b4b4]Tb4b4b4[Ta5d6ff"stackSave"Tb4b4b4]Tb4b4b4)Tb4b4b4.Te6edf3applyTb4b4b4(Tff7b72nullTb4b4b4, Te6edf3argumentsTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
T8b949e/** @type {function(...*):?} */
Tff7b72var Te6edf3stackRestore Tff7b72= Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"stackRestore"Tb4b4b4] Tff7b72= Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4(Te6edf3stackRestore Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"stackRestore"Tb4b4b4] Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"asm"Tb4b4b4]Tb4b4b4[Ta5d6ff"stackRestore"Tb4b4b4]Tb4b4b4)Tb4b4b4.Te6edf3applyTb4b4b4(Tff7b72nullTb4b4b4, Te6edf3argumentsTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
T8b949e/** @type {function(...*):?} */
Tff7b72var Te6edf3stackAlloc Tff7b72= Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"stackAlloc"Tb4b4b4] Tff7b72= Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4(Te6edf3stackAlloc Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"stackAlloc"Tb4b4b4] Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"asm"Tb4b4b4]Tb4b4b4[Ta5d6ff"stackAlloc"Tb4b4b4]Tb4b4b4)Tb4b4b4.Te6edf3applyTb4b4b4(Tff7b72nullTb4b4b4, Te6edf3argumentsTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
T8b949e/** @type {function(...*):?} */
Tff7b72var Te6edf3dynCall_jiji Tff7b72= Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"dynCall_jiji"Tb4b4b4] Tff7b72= Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4(Te6edf3dynCall_jiji Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"dynCall_jiji"Tb4b4b4] Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"asm"Tb4b4b4]Tb4b4b4[Ta5d6ff"dynCall_jiji"Tb4b4b4]Tb4b4b4)Tb4b4b4.Te6edf3applyTb4b4b4(Tff7b72nullTb4b4b4, Te6edf3argumentsTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
T8b949e// === Auto-generated postamble setup entry stuff ===
Te6edf3ModuleTb4b4b4[Ta5d6ff"FS"Tb4b4b4] Tff7b72= Te6edf3FSTb4b4b4;
Tff7b72var Te6edf3calledRunTb4b4b4;
Te6edf3dependenciesFulfilled Tff7b72= Tff7b72function Te6edf3runCallerTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3calledRunTb4b4b4) Te6edf3runTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3calledRunTb4b4b4) Te6edf3dependenciesFulfilled Tff7b72= Te6edf3runCallerTb4b4b4; T8b949e// try this again later, after new deps are fulfilled
Tb4b4b4}Tb4b4b4;
Tff7b72function Te6edf3callMainTb4b4b4(Te6edf3argsTb4b4b4) Tb4b4b4{
Tff7b72var Te6edf3entryFunction Tff7b72= Te6edf3ModuleTb4b4b4[Ta5d6ff"_main"Tb4b4b4]Tb4b4b4;
Te6edf3args Tff7b72= Te6edf3args Tff7b72|| Tb4b4b4[Tb4b4b4]Tb4b4b4;
Te6edf3argsTb4b4b4.Te6edf3unshiftTb4b4b4(Te6edf3thisProgramTb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3argc Tff7b72= Te6edf3argsTb4b4b4.Te6edf3lengthTb4b4b4;
Tff7b72var Te6edf3argv Tff7b72= Te6edf3stackAllocTb4b4b4(Tb4b4b4(Te6edf3argc Tff7b72+ T79c0ff1Tb4b4b4) Tff7b72* T79c0ff4Tb4b4b4)Tb4b4b4;
Tff7b72var Te6edf3argv_ptr Tff7b72= Te6edf3argv Tff7b72>> T79c0ff2Tb4b4b4;
Te6edf3argsTb4b4b4.Te6edf3forEachTb4b4b4(Tb4b4b4(Te6edf3argTb4b4b4) Tb4b4b4=> Tb4b4b4{
Te6edf3HEAP32Tb4b4b4[Te6edf3argv_ptrTff7b72++Tb4b4b4] Tff7b72= Te6edf3allocateUTF8OnStackTb4b4b4(Te6edf3argTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3HEAP32Tb4b4b4[Te6edf3argv_ptrTb4b4b4] Tff7b72= T79c0ff0Tb4b4b4;
Tff7b72try Tb4b4b4{
Tff7b72var Te6edf3ret Tff7b72= Te6edf3entryFunctionTb4b4b4(Te6edf3argcTb4b4b4, Te6edf3argvTb4b4b4)Tb4b4b4;
T8b949e// In PROXY_TO_PTHREAD builds, we should never exit the runtime below, as
T8b949e// execution is asynchronously handed off to a pthread.
T8b949e// if we're not running an evented main loop, it's time to exit
Te6edf3exitJSTb4b4b4(Te6edf3retTb4b4b4, T8b949e/* implicit = */ Tff7b72trueTb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3retTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3eTb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3handleExceptionTb4b4b4(Te6edf3eTb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
T8b949e/** @type {function(Array=)} */
Tff7b72function Te6edf3runTb4b4b4(Te6edf3argsTb4b4b4) Tb4b4b4{
Te6edf3args Tff7b72= Te6edf3args Tff7b72|| Te6edf3arguments_Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3runDependencies Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Te6edf3preRunTb4b4b4(Tb4b4b4)Tb4b4b4;
T8b949e// a preRun added a dependency, run will be called later
Tff7b72if Tb4b4b4(Te6edf3runDependencies Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Tff7b72returnTb4b4b4;
Tb4b4b4}
Tff7b72function Te6edf3doRunTb4b4b4(Tb4b4b4) Tb4b4b4{
T8b949e// run may have just been called through dependencies being fulfilled just in this very frame,
T8b949e// or while the async setStatus time below was happening
Tff7b72if Tb4b4b4(Te6edf3calledRunTb4b4b4) Tff7b72returnTb4b4b4;
Te6edf3calledRun Tff7b72= Tff7b72trueTb4b4b4;
Te6edf3ModuleTb4b4b4[Ta5d6ff"calledRun"Tb4b4b4] Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3ABORTTb4b4b4) Tff7b72returnTb4b4b4;
Te6edf3initRuntimeTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3preMainTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3readyPromiseResolveTb4b4b4(Te6edf3ModuleTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"onRuntimeInitialized"Tb4b4b4]Tb4b4b4) Te6edf3ModuleTb4b4b4[Ta5d6ff"onRuntimeInitialized"Tb4b4b4]Tb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3shouldRunNowTb4b4b4) Te6edf3callMainTb4b4b4(Te6edf3argsTb4b4b4)Tb4b4b4;
Te6edf3postRunTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"setStatus"Tb4b4b4]Tb4b4b4) Tb4b4b4{
Te6edf3ModuleTb4b4b4[Ta5d6ff"setStatus"Tb4b4b4]Tb4b4b4(Ta5d6ff"Running..."Tb4b4b4)Tb4b4b4;
Te6edf3setTimeoutTb4b4b4(Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3setTimeoutTb4b4b4(Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Te6edf3ModuleTb4b4b4[Ta5d6ff"setStatus"Tb4b4b4]Tb4b4b4(Ta5d6ff""Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4;
Te6edf3doRunTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Te6edf3doRunTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"preInit"Tb4b4b4]Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3ModuleTb4b4b4[Ta5d6ff"preInit"Tb4b4b4] Tff7b72== Ta5d6ff"function"Tb4b4b4) Te6edf3ModuleTb4b4b4[Ta5d6ff"preInit"Tb4b4b4] Tff7b72= Tb4b4b4[Te6edf3ModuleTb4b4b4[Ta5d6ff"preInit"Tb4b4b4]Tb4b4b4]Tb4b4b4;
Tff7b72while Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"preInit"Tb4b4b4]Tb4b4b4.Te6edf3length Tff7b72> T79c0ff0Tb4b4b4) Tb4b4b4{
Te6edf3ModuleTb4b4b4[Ta5d6ff"preInit"Tb4b4b4]Tb4b4b4.Te6edf3popTb4b4b4(Tb4b4b4)Tb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
T8b949e// shouldRunNow refers to calling main(), not run().
Tff7b72var Te6edf3shouldRunNow Tff7b72= Tff7b72trueTb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3ModuleTb4b4b4[Ta5d6ff"noInitialRun"Tb4b4b4]Tb4b4b4) Te6edf3shouldRunNow Tff7b72= Tff7b72falseTb4b4b4;
Te6edf3runTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3createC2EncTb4b4b4.Te6edf3readyTb4b4b4;
Tb4b4b4}Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3exports Tff7b72=== Ta5d6ff"object" Tff7b72&& Tff7b72typeof Te6edf3module Tff7b72=== Ta5d6ff"object"Tb4b4b4) Te6edf3moduleTb4b4b4.Te6edf3exports Tff7b72= Te6edf3createC2EncTb4b4b4;
Tff7b72else Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3define Tff7b72=== Ta5d6ff"function" Tff7b72&& Te6edf3defineTb4b4b4[Ta5d6ff"amd"Tb4b4b4]Tb4b4b4)
Te6edf3defineTb4b4b4(Tb4b4b4[Tb4b4b4]Tb4b4b4, Tff7b72function Tb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3createC2EncTb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tff7b72else Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3exports Tff7b72=== Ta5d6ff"object"Tb4b4b4) Te6edf3exportsTb4b4b4[Ta5d6ff"createC2Enc"Tb4b4b4] Tff7b72= Te6edf3createC2EncTb4b4b4;
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────